簡體   English   中英

Mysqli_query SELECT 返回 false

[英]Mysqli_query SELECT returns false

我目前正在嘗試根據學號和密碼獲取某個用戶...問題是 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);
$sql = "SELECT studentNumber FROM student where studentNumber = '$number'" ;

改成

$sql = "SELECT studentNumber FROM student where studentNumber = '".$number."'" ;

首先獲取結果並在您的條件下使用它。

$result2 = mysql_fetch_array($result);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM