我正在我的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:xampphtdocsEmail_addresswelcome.php on line 20
Invalid Query
谢谢Taha
您需要执行查询,并且不能像这样引用字段/表名称:
$query2= "SELECT * FROM 'email' where 'id' ='".$_SESSION['user_id']. "'" ;
应该是:
$query2= "SELECT * FROM `email` where `id` ='".$_SESSION['user_id']. "'" ;
请注意,反引号仅适用于 mysql 中的保留字以及带空格的表和字段名称。
您也不应该使用已弃用的mysql_*
函数,而应该使用 PDO 或 mysqli。
您必须执行查询:
$query_run2= mysql_query($query2);
先执行查询,然后才能获取行:
$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,如果您决定朝这个方向前进并在Web服务器上进行设置,这里有一些有用的信息:
http://net.tutsplus.com/tutorials/php/php-database-access-are-you-doing-it-correctly/
试试这些:
$query= "SELECT * FROM `email` where `id` =' ".$_SESSION['user_id']. "'" ;
$rs = mysql_query($query);