2016-10-18 16 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のデータベースエクステンションを学ぶことができます。その列として Start here は、その値がFALSEであるかどうかを確認、mysql_num_rows($sql)内のリソースとして$sqlを使用する前に、ほぼ間違いなく、文字列データ型

+0

私は何千もの子猫を殺しました。私が 'mysql_'を使用したのは、WAMPサーバが付属しているからです:P –

+0

MYSQLI_と' PDO'は参照用に開発されて以来、時間の霧の中に戻ってきました – RiggsFolly

0

です: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に移動

関連する問題