2016-10-18 4 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); 
?> 

그것은 나에게 오류 "경고주고 유지 : mysql_num_rows도를() 매개 변수 (1) 자원이 될 것으로 예상, 부울에 주어진 C : \ wamp64 \ www \ login.php 라인 19 ". 이것이 왜 발생 하는가?

+1

대부분의 경우 쿼리가 어떤 이유로 실패했습니다. –

+0

@ Riggs 곧장 그 지점으로갑니다. –

답변

2

이 쿼리는 그것은 username으로

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

거의 확실히 데이터베이스

당신이 the mysql_ 를 사용할 때마다의 텍스트 데이터 형식이어야합니다

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

에 오류가 새 코드의 데이터베이스 확장자 a Kitten is strangled somewhere in the world 그것은 더 이상 사용되지 않으며 몇 년 동안 계속되었으며 PHP7에서 영원히 사라졌습니다. PHP를 배우려는 분이라면 PDO 또는 mysqli 데이터베이스 확장을 배우는 데 활력을 불어 넣으십시오. 그 값이 FALSE 인 경우 해당 열 등 Start heremysql_num_rows($sql)에 리소스로 $sql을 사용하기 전에 거의 확실히 문자열 데이터 형식

+0

나는 수천 마리의 새끼 고양이를 죽였다. 내가 mysql_'을 사용하는 이유는 WAMP 서버가 있기 때문입니다 : P –

+0

'MYSQLI_'와'PDO'는 참조 용으로 개발 된 이후로 시간의 안개 속에서 돌아 왔습니다. – RiggsFolly

0

입니다 확인 :

$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이에 제안으로 mysql_query return values 자신의 의견, PDO 또는 mysqli로 이동

관련 문제