在SQL中使用会话变量

时间:2015-05-17 06:49:48

标签: php sql session where-clause

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

$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子句中的问题吗?

2 个答案:

答案 0 :(得分: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'])."'";

你遗漏了一个空间。

答案 1 :(得分:1)

  

首先 - 不推荐使用MySQL。尝试使用MySQLi(改进)。

     

第二 - 你弄乱了你的疑问。