簡體   English   中英

准備好的語句返回0而不是1,為什么呢?

[英]Prepared statement returns 0 instead of 1, why?

在這種情況下有什么問題? 為什么我得到0而不是1? 如果我從phpMyAdmin運行查詢,它將正常工作。

if ($stmt = $mysqli->prepare("SELECT * FROM members WHERE username=? AND password=?")){
        $input['hold'] = md5($input['pass'] . $config['salt']);
        $stmt->bind_param("ss", $input['user'], $input['hold']);
        $stmt->store_result();
        $stmt->execute();

        if ($stmt->num_rows > 0){
            // Set session variables
            $_SESSION['username'] = $input['user'];

            header("Location: members.php"); // Redirect if we have results }

我沒有解決方案,但是有一些評論太大了。

您顯示給我們的代碼將在結果為null或失敗以及行數為零時設置會話。 沒有錯誤檢查以查看代碼是否按預期執行。

您應該檢查錯誤。 另外,請嘗試使用已通過PHPMyAdmin的mysql命令行客戶端測試並驗證的硬編碼SQL語句運行它。

暫無
暫無

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

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