亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

警告 :: 無效對象或資源 mysqli_stmt。什么意思和解決方案?

警告 :: 無效對象或資源 mysqli_stmt。什么意思和解決方案?

PHP
GCT1015 2023-05-12 15:41:31
以下代碼拋出神秘的警告。我不明白他們的意思。這些錯誤表明什么以及如何消除它們?require "conn.php";$q = mysqli_stmt_init($dbconn);$query = "SELECT users.userid FROM users WHERE users.email = ? ";mysqli_stmt_prepare($q, $query);mysqli_stmt_bind_param($q, "s", $email);mysqli_stmt_execute($q);$result = mysqli_stmt_get_result($q);if (mysqli_num_rows($result) == 0) {    $q = mysqli_stmt_init($dbconn);    $query = "INSERT INTO users ( users.first_name, users.last_name, users.mobile_no, users.email, users.password, users.reg_date)         VALUES (? ,? ,? ,? ,? ,NOW() )";    mysqli_stmt_prepare($q, $query);    mysqli_stmt_bind_param($q, "sssss", $first_name, $last_name, $mobile_number, $email, $password);    mysqli_stmt_execute($q);    if (mysqli_stmt_affected_rows($q) == 1) {        echo "data inserted <br>";        foreach ($_POST as $key => $val) {            echo "$key - - - > $val <br>";        }    }} else {    echo "email is already registered";}每當我在出現警告后運行這段代碼時Warning: mysqli_stmt_bind_param(): invalid object or resource mysqli_stmt in /storage/emulated/0/htdocs/registration_process.php on line 66Warning: mysqli_stmt_execute(): invalid object or resource mysqli_stmt in /storage/emulated/0/htdocs/registration_process.php on line 67Warning: mysqli_stmt_get_result(): invalid object or resource mysqli_stmt in /storage/emulated/0/htdocs/registration_process.php on line 68Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in /storage/emulated/0/htdocs/registration_process.php on line 70 
查看完整描述

1 回答

?
www說

TA貢獻1775條經驗 獲得超8個贊

這里的問題很奇特。這聽起來無關緊要,但此錯誤消息是不可靠語法變體的結果。

與對象語法相比,過程性 mysqli 語法不僅過于冗長,而且具有欺騙性,不是在真正發生時引發錯誤,而是在已經為時已晚時引發錯誤,更不用說此錯誤消息的神秘性質。

您的查詢存在一些問題,您需要按照此答案中的說明從 MySQL獲取真正的錯誤消息,但為了實現它,您必須更改語法。

外賣:解決你的問題

  1. conn.php如本文所示重寫您的內容以設置正確的連接設置

  2. 將程序 mysqli 重寫為對象語法,例如

    $query?=?"SELECT?userid?FROM?users?WHERE?email?=??";
    $stmt?=?$dbconn->prepare($query);$stmt->bind_param("s",?$email);
    $stmt->execute();
    $result?=?$stmt->get_result();
  3. 得到真正的錯誤信息

  4. 如果錯誤已經很清楚,那么只需修復它,否則谷歌以獲得更好的解釋

之后你就可以解決問題了。


查看完整回答
反對 回復 2023-05-12
  • 1 回答
  • 0 關注
  • 155 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號