【问题标题】:using session variables in SQL where在 SQL where 中使用会话变量
【发布时间】:2015-07-28 20:02:06
【问题描述】:

我正在尝试从数据库中检索数据并打印它们。这是我的代码

$sql="SELECT * FROM table1 WHERE c_no='".mysql_real_escape_string($_SESSION['user']['c'])."'.AND a_no='".mysql_real_escape_string($_SESSION['user']['a'])."'";
    $result=mysql_query($sql,$connect);

    echo "<table>";
    $num_of_rows=mysql_num_rows($result);
    echo $num_of_rows;
    for($k=0;$k<3;$k=$k+2){
        echo "<th>";
        echo mysql_field_name($result,$k);
        echo "</th>";       
    }
    while($r=mysql_fetch_assoc($result)){
        echo "<tr>";
        echo "<td>".$r["field1"]."</td><td>".$r["field2"]."</td>";
        echo "</tr>";
    }

此代码给出错误mysql_num_rows(): supplied argument is not a valid MySQL result resource
mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource
mysql_field_name(): supplied argument is not a valid MySQL result resource

这是为什么?我的会话变量工作正常,就像我使用时一样
echo $_SESSION['user']['a'];它工作正常吗?是 WHERE 子句的问题吗?

【问题讨论】:

    标签: php sql session where-clause


    【解决方案1】:

    这应该可行:

    $sql="SELECT * FROM table1 WHERE c_no = '".mysql_real_escape_string($_SESSION['user']['c'])."' AND a_no = '".mysql_real_escape_string($_SESSION['user']['a'])."'";
    

    你错过了一个空格。

    【讨论】:

    • 非常感谢。它成功了。我在哪里错过了一个空间?我看不出哪里错了,所以我复制了你的台词。当出现这样的错误时,有什么方法可以检测到吗?
    【解决方案2】:

    首先 - MySQL 已被弃用。尝试使用 MySQLi(改进)。

    第二 - 你搞砸了你的查询。

    【讨论】:

    • 这应该是评论,而不是答案
    • 我没有名声!
    • 所以等等。像其他人一样,直到你这样做
    猜你喜欢
    • 2012-02-19
    • 1970-01-01
    • 2023-03-02
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    • 2020-04-16
    • 1970-01-01
    • 2016-01-24
    相关资源
    最近更新 更多