所以,我有一个准备好的语句,在执行时返回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
答案 0 :(得分: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;