我想在用户点击提交按钮后检查用户的输入是否存在于数据库中。
因此,我有这个代码。但是,它总是说数据不存在,它发现条件为false。
我的代码有什么问题?
$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";
}
答案 0 :(得分:5)
您的查询失败,因为您未将数据库连接传递给:
$a = mysqli_query($data_check);
连接的变量未知,因此您需要立足于:
$a = mysqli_query($connection, $data_check);
您可能必须使用>0
代替==1
代替num_rows()
,因为可能会有多条记录。
你的代码也开放给sql注入;使用准备好的声明。
在查询中使用PHP的error reporting和mysqli_error($connection)
。
还要确保您的连接实际上是mysqli_
,而不是另一个api。
答案 1 :(得分:0)
$input_word = trim($_POST["word"]);
$data_check = "SELECT * FROM word_collections WHERE single_word = '$input_word'";
$con = mysqli_connect("host",'id','pass','dbname'); // add this connection
$a = mysqli_query($con,$data_check);
if (mysqli_num_rows($a) == 1)
{
echo "Data exist.";
}
else
{
echo "Data DOES NOT exist";
}
您需要将您的连接放在mysqli_query参数1中。您可以参考w3schools中的教程。
答案 2 :(得分:0)
最好的办法。
$dbhost = 'localhost';
$dbuser = 'username';
$dbuser = 'password';
$dbpass = 'dbname';
$dbConn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
$query = "SELECT * FROM word_collections WHERE single_word = '$input_word'";
$result = $dbConn->query($query);
if($result->num_rows == 1){
echo "have some records";
}else{
echo "No records";
}