次のコードがあります。
<?php
if(!empty($_POST)){
$db = new mysqli('localhost', 'root', '', 'verif1');
$password = $_POST['pass'];
$username = $_POST['user'];
$table = "admins";
$password = hash("sha256", $password);
$statement = $db->prepare("SELECT COUNT(*) FROM {$table} WHERE username = ? AND password = ?");
$statement->bind_param("ss", $username, $password);
$statement->execute();
$statement->bind_result($numrows);
if($numrows == 1){
echo "yeah correct!<br>";
}else{
echo "No :(<br>";
}
}
?>
<form action="" method="POST">
<input type="textbox" name="user">
<br>
<input type="password" name="pass">
<br>
<input type="submit">
</form>
すべてが正しいと確信しています(エラーがスローされず、何もありません)、機能しません!返されたオブジェクトを確認するために print_r() を試しましたが、これが得られました: execute() の後にこれを行います:
print_r($statement);
die();
そして、それは私にこれを与えます:
mysqli_stmt オブジェクト ( [影響を受ける行] => -1 [挿入 ID] => 0 [行数] => 0 [パラメータ数] => 2 [フィールド数] => 1 [エラー番号] => 0 [エラー] => [エラーリスト] =>配列 ( ) [sqlstate] => 00000 [id] => 1 )