在 SQL 中使用会话变量,其中
using session variables in SQL where
我正在尝试从数据库中检索数据并打印它们。这是我的代码
$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 子句中吗?
这应该有效:
$sql="SELECT * FROM table1 WHERE c_no = '".mysql_real_escape_string($_SESSION['user']['c'])."' AND a_no = '".mysql_real_escape_string($_SESSION['user']['a'])."'";
你错过了 space 点。
First - MySQL is deprecated. Try using MySQLi (improved).
Second - You're messing up with your queries.
我正在尝试从数据库中检索数据并打印它们。这是我的代码
$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 子句中吗?
这应该有效:
$sql="SELECT * FROM table1 WHERE c_no = '".mysql_real_escape_string($_SESSION['user']['c'])."' AND a_no = '".mysql_real_escape_string($_SESSION['user']['a'])."'";
你错过了 space 点。
First - MySQL is deprecated. Try using MySQLi (improved).
Second - You're messing up with your queries.