簡體   English   中英

使用mysqli bind_result不會從數據庫中獲取值

[英]Value is not getting fetched from database using mysqli bind_result

我試圖使用mysqli獲取在我的數據庫表中找到的int 然后我使用bind_result()綁定結果。 但是,當我嘗試使用該值時,我只需得到0.我該如何處理?

我的代碼看起來像這樣:

$sql = <<<EOF
        SELECT
        project_salary_amount
        FROM projects_set_salary
        WHERE project_id = ? ORDER BY project_salary_id DESC LIMIT 1
EOF;
    $stmt = $mysqli->prepare($sql) or die ("Feil i database<br>" . $sql . "<br><b>Feilmelding:</b> " . $mysqli->error);
    $stmt->bind_param("i", $project_id);
    $stmt->execute();
    $stmt->store_result();
    $stmt->bind_result($dbb_salary_amount);
    $db_salary_amount = $dbb_salary_amount;
    $num_salary_results = $stmt->num_rows;
    $stmt->free_result();
    $stmt->close();

    if($num_salary_results == 0){
        $sql = <<<EOF
        INSERT INTO
        projects_set_salary (project_id)
        VALUES ($project_id)
EOF;
        $stmt = $mysqli->prepare($sql) or die ("Feil i database<br>" . $sql . "<br><b>Feilmelding:</b> " . $mysqli->error);
        $stmt->execute();
        $stmt->close();
        $db_salary_amount = 10;
        $html_set_salary = "";
        $html_set_salary .= "<form id=\"form_send_salary\"method=\"post\" action=\"create_set_salary.php\">\n";
        $html_set_salary .= "<input type=\"number\" name=\"set_salary\" value=\"$db_salary_amount\">";
    }
    else{
        $html_set_salary = "";
        $html_set_salary .= "<form id=\"form_send_salary\"method=\"post\" action=\"create_set_salary.php\">\n";
        $html_set_salary .= "<input type=\"number\" name=\"set_salary\" value=\"$db_salary_amount\">";
    }

現在,它不會在輸入框內顯示10。 這意味着它不執行if語句。 但是,為什么我沒有從$db_salary_amount獲得任何結果? 我知道我可能不必將變量從$db_salary_amount$db_salary_amount 我只是想找出問題所在。

你在bind_result()之后缺少一個->fetch() bind_result()

$stmt->execute();
$stmt->store_result();
$stmt->bind_result($dbb_salary_amount);
$stmt->fetch(); // <--- missing this ->fetch()
$db_salary_amount = $dbb_salary_amount;

來自docs for ->bind_result() - > When mysqli_stmt_fetch() is called to fetch data, the MySQL client/server protocol places the data for the bound columns into the specified variables var1, ....

暫無
暫無

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

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