簡體   English   中英

PHP MySQL我准備的語句在執行時返回false

[英]PHP MySQLI prepared statement returning false on execution

因此,我有一條准備執行的語句,該語句在執行時返回false,但錯誤代碼為0,表示沒有錯誤,盡管由於未在執行中而明顯存在錯誤。

我以這種方式准備了聲明:

if(!$prepared_statements['GetAdmUsers'] = $conn->prepare('SELECT nome FROM Alunos WHERE professor = ?'))
echo "<br/>Erro: " . $conn->error;

並以這種方式執行(功能片段)

                if(!$p['GetAdmUsers']->bind_param('i', $id))
                echo "<br/>Erro: ". $c->error;
            if(!$p['GetAdmUsers']->execute())
                echo "<br/>Erro: ". $c->error;

在您要求我提供完整代碼之前,我應該說所有變量和對象均已測試,這不是問題所在,除了已使用的變量和對象之外,代碼的其他部分均未涉及到該問題。

提前致謝。

編輯:$ c是mysqli連接對象,errno為0

您正在從錯誤的對象中提取錯誤。 錯誤存儲在語句對象內,而不是連接對象內。 看到:

http://php.net/manual/en/mysqli-stmt.error.php

/* execute query */
$stmt->execute();

printf("Error: %s.\n", $stmt->error);

請注意,代碼使用的對象相同,用於執行語句和檢索錯誤。 在您的情況下,您需要使用:

echo "<br />" . $p['GetAdmUsers']->error;

暫無
暫無

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

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