我在PHP程序中编写以下代码,但mysql没有返回任何行。请检查并帮助找出以下代码中的错误。
更新代码
<?php
//$query2= "SELECT * FROM `email` where `id` ='".$_SESSION['user_id']. "'" ;
//$query2= "SELECT * FROM `email` where `id` ='".$_SESSION['user_id']. "'" ;
$query= "SELECT * FROM `email` where `id` =' ".$_SESSION['user_id']. "'" ;
$query_run2= mysql_query($query);
$query_num_rows= mysql_num_rows($query_run2);
if ($query_num_rows==0) {
echo "Invalid Query";
}
else {
$query_result = mysql_result ($query_run2, 0, 'name');
echo "Welcome" ;
echo $_SESSION['user_id'];
}
?>
它给了我以下输出。
Log out
Warning: mysql_num_rows() expects parameter 1 to be resource, string given in F:\xampp\htdocs\Email_address\welcome.php on line 20
Invalid Query
谢谢, 塔哈
答案 0 :(得分:2)
您需要执行查询,而不能像这样引用字段/表名称:
$query2= "SELECT * FROM 'email' where 'id' ='".$_SESSION['user_id']. "'" ;
应该是:
$query2= "SELECT * FROM `email` where `id` ='".$_SESSION['user_id']. "'" ;
请注意,只有mysql中的保留字以及带空格的表和字段名称才需要反引号。
您也不应该使用已弃用的mysql_*
函数,而是使用PDO或mysqli。
答案 1 :(得分:1)
您需要先执行查询才能获取行:
$query_run2 = mysql_query($query2);
您还需要先连接到数据库,然后才能运行查询:
$con = mysql_connect(DB_SERVERNAME, DB_USERNAME, DB_PASSWORD);
$dbLink = mysql_select_db(DB_NAME, $con);
$query_run2 = mysql_query($query2, $dbLink);
如果您使用这些mysql函数,而不是切换到PDO,请不要忘记之后关闭数据库连接:
mysql_close($con);
如果可能的话,我强烈建议转而使用PDO,如果你决定朝着那个方向前进并在你的网络服务器上设置它,这里有一些有用的信息:
http://net.tutsplus.com/tutorials/php/php-database-access-are-you-doing-it-correctly/
答案 2 :(得分:1)
您必须执行查询:
$query_run2= mysql_query($query2);
答案 3 :(得分:0)
试试这些:
$query= "SELECT * FROM `email` where `id` =' ".$_SESSION['user_id']. "'" ;
$rs = mysql_query($query);