2016-10-18 2 views
0

Во-первых, я использую MySQL не MySQLi. Я буду обновлять в ближайшее время, но сейчас, я застрял с этим текущим кодом:MySQL (устаревшая) ошибка mysql_num_row()

<?php 
$dbusername = "root"; 
$dbpassword = "pass123"; 
$db = "login"; 
$conn = @mysql_connect("localhost:3306", $dbusername, $dbpassword); 
mysql_select_db($db); 

$userid = $_POST["userid"]; 
$userpass = $_POST["userpass"]; 

$sql = mysql_query("SELECT password FROM users WHERE username = {$userid}"); 
echo $sql; 

if(mysql_num_rows($sql) >= 1){ 
    //user not found 
    echo "Found user login!"; 
} else { 
    //user found 
    echo "Could not find user"; 

} 

mysql_close($conn); 
?> 

и продолжает давать мне ошибку «Warning: mysql_num_rows() ожидает параметр 1, чтобы быть ресурсом, логический приведено в C: \ wamp64 \ www \ login.php в строке 19 ". Почему это вызвано?

+1

скорее всего, ваш запрос по какой-то причине не удался. –

+0

@RiggsFolly прямо в точку. –

ответ

2

Этот запрос содержит ошибку

$sql = mysql_query("SELECT password FROM users WHERE username = {$userid}"); 

Он должен быть

$sql = mysql_query("SELECT password FROM users WHERE username = '{$userid}'"); 

Как username почти определенно тип данных текст на базе

Каждый раз, когда вы используете the mysql_ расширение базы данных в новом коде a Kitten is strangled somewhere in the world он устарел и был в течение многих лет и ушел навсегда в PHP7. Если вы просто изучаете PHP, потратьте свои силы на изучение расширений базы данных PDO или mysqli. Start here в этом столбце почти определенно тип

+0

Я убил тысячи котят. Причина, по которой я использую mysql_, заключается в том, что он пришел с сервером WAMP, который я получил: P –

+0

Для справки, так же как и MYSQLI_ и PDO, и сделали это с тех пор, как они были разработаны, назад в тумане времени – RiggsFolly

0

строка данных Перед использованием $sql в качестве ресурса в mysql_num_rows($sql), проверьте, если его значение FALSE: mysql_query return values

$sql = mysql_query("SELECT password FROM users WHERE username = {$userid}"); 
if ($sql == FALSE) { 
    echo "an error occured in your query"; 
    die(); 
} 

if(mysql_num_rows($sql) >= 1){ 
    //user not found 
    echo "Found user login!"; 
} else { 
    //user found 
    echo "Could not find user"; 

} 

И как @RiggsFolly предложил в своем комментарий, перейти к PDO или mysqli

Смежные вопросы