MySQL не возвращает ни одной строки
Я пишу следующий код в моей программе 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
Спасибо таха
4 ответа
Вам нужно выполнить свой запрос, и вы не можете заключить в кавычки имена полей / таблиц:
$query2= "SELECT * FROM 'email' where 'id' ='".$_SESSION['user_id']. "'" ;
должно быть:
$query2= "SELECT * FROM `email` where `id` ='".$_SESSION['user_id']. "'" ;
Обратите внимание, что обратные метки необходимы только для зарезервированных слов в mysql и имен таблиц и полей с пробелами.
Вы также не должны использовать устаревшие mysql_*
функции, но PDO или MySQL вместо.
Вы должны выполнить свой запрос:
$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, вот некоторая полезная информация, если вы решите пойти в этом направлении и настроить ее на своем веб-сервере:
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);