报告错误在centos上的非对象上调用成员函数bindParam(),但在macOS上可以

时间:2017-08-23 14:52:11

标签: php mysql pdo

我的代码是:

$sql = 'INSERT INTO t_account set uid=:uid, pwd=:pwd, register_time=:registerTime'; $stmt = $dbh->prepare($sql);

$stmt->bindParam(':uid', $this->uid, PDO::PARAM_STR);

在macOS PHP 5.6上,mysql,没关系。 在macOS PHP 7.0,mysql上,没关系。

但是对于centos 7.3 PHP 5.4.45,mariadb,$stmt似乎为空,当我print_r $stmt时,它什么也没有显示。

PDO :: PARAM_STR应该包含2个参数,所以我认为,最后一行代码没问题,当exec $ stmt = $ dbh-> prepare($ sql)时,$ stmt似乎是null,有些错误了已经发生了。

bindParam报告错误:

致命错误:在 /var/www/html/sxb/model/Account.php 上的非对象上调用成员函数bindParam() 。 479

我的代码是:

$ sql =' INSERT INTO t_account set uid =:uid,pwd =:pwd,register_time =:registerTime&#39 ;; $ stmt = $ dbh-> prepare($ sql);

$ stmt-> bindParam(':uid',$ this-> uid,PDO :: PARAM_STR);

在macOS PHP 5.6上,mysql,没关系。在macOS PHP 7.0,mysql上,没关系。

但是在centos 7.3 PHP 5.4.45,mariadb,

现在我得到了错误原因:

当其他未缓冲的查询处于活动状态时,无法执行查询。考虑使用PDOStatement :: fetchAll()。或者,如果您的代码只是针对mysql运行,则可以通过设置PDO :: MYSQL_ATTR_USE_BUFFERED_QUERY属性来启用查询缓冲。

我想知道,为什么macOS没问题,而centos错了。有什么不同? PDO的版本差异引领了这个?

0 个答案:

没有答案