gpt4 book ai didi

php - Mysqli_query SELECT 返回 false

转载 作者:行者123 更新时间:2023-11-29 02:56:43 25 4
gpt4 key购买 nike

我目前正在尝试根据学号和密码获取某个用户...问题是 mysqli_query 一直返回 false(?) 语句。虽然我通过在 PHPMyAdmin 中测试它来检查查询。这是我的查询:

$number = $_POST['number'];
$password = $_POST['password'];

$sql = "SELECT studentNumber FROM student where studentNumber = '$number'" ;
$result = mysqli_query($conn, $sql) or die(mysqli_error());;

if(!$result){
echo "FAIL";
}
else if($result > 0){
header("register.html");
}else{
$sql = "INSERT INTO 'sampleDB'.'student'('userID', 'studentNumber', 'password') VALUES ('', $number, $password)";
header("login.html");
}

这是我的代码连接部分:

$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

最佳答案

您应该通过 num_rows 检查查询结果产生了多少行,然后如果为零则进行一些插入。

请注意,列引号实际上是反引号而不是单引号:

$number = $_POST['number'];
$password = $_POST['password'];

// checking

$sql = 'SELECT studentNumber FROM student WHERE studentNumber = ?';
$select = $conn->prepare($sql);
$select->bind_param('s', $number);
$select->execute();
// if there is no student number, register
if($select->num_rows > 0) {
// there is student number found
header('Location: index.html'); exit;

} else {

// there is NO student number found
$sql = 'INSERT INTO sampleDB.student(userID, studentNumber, password) VALUES (NULL, ?, ?)';
$insert = $conn->prepare($sql);
$insert->bind_param('ss', $number, $password);
$insert->execute();

header('Location: login.html');
}

旁注:您的连接代码似乎在问题上被截断了。不要忘记将您的数据库名称添加到连接中:

$conn = new mysqli($servername, $username, $password, $database_name);

关于php - Mysqli_query SELECT 返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30011013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com