PHP MySQLI 准备语句在执行时返回 false

标签 php mysql sql mysqli

<分区>

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

关于PHP MySQLI 准备语句在执行时返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28790960/

相关文章:

php - 基本的PHP集合

php - 获取每条记录的正确 'topic'

mysql - 将保存为变量的字符串存储在 MySQL 数据库中?

Mysql 分区无法正常工作

sql - 在 SQL 中存储直方图的最有效(存储空间)方式

java - 获取结果集() "should be called only once per result"

php - 我需要在 javascript 函数中初始化 PHP 变量吗?

mysql - ruby rails : Find the record with lowest value of a specific column

java - 是否可以从 hibernate 动态添加存储过程?

javascript - 使用javascript中的onclick获取输入标签中每个值的值