単語がデータベースに存在する場合、送信ボタンを押した後にユーザーの入力を確認したいと思います。なぜmysqli_num_rowsは常に0を返しますか?
したがって、私はこのコードを持っています。しかし、それは常に、条件が偽であることを発見したDataは存在しないと言います。
以下のコードで何が問題になっていますか?
$input_word = trim($_POST["word"]);
$data_check = "SELECT * FROM word_collections WHERE single_word = '$input_word'";
$a = mysqli_query($data_check);
if (mysqli_num_rows($a) == 1)
{
echo "Data exist.";
}
else
{
echo "Data DOES NOT exist";
}
本当に1を超えないことを確認してください。さらに重要なことは、あなたは[SQL Injections](http://php.net/manual/en/security.database.sql-injection.php)に広く関わっており、実際には[Prepared Statements](http:// php。 net/manual/en/mysqli.quickstart.prepared-statements.php)を実行してください。あなたがユーザーの入力をまったくエスケープしていないからです! –
私はmysqli_num_rowsが1または0のどちらかを返す記事を読んでいます@MagnusEriksson –
いいえ。それはクエリで返された行の数を返します。 "num_rows" = "行数"。 php関数に関する質問がある場合は、常にsoure:[the php manual](http://php.net/manual/en/mysqli-result.num-rows.php) –