php – 致命错误:在布尔值上调用成员函数bind_param()
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 致命错误:在布尔值上调用成员函数bind_param(),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2073字,纯文字阅读大概需要3分钟。
内容图文
![php – 致命错误:在布尔值上调用成员函数bind_param()](/upload/InfoBanner/zyjiaocheng/717/5c38664926864517a485e0f9a760775a.jpg)
我正忙于从数据库获取设置的函数,突然间,我遇到了这个错误:
Fatal error: Call to a member function bind_param() on boolean in C:\xampp2\htdocs\application\classes\class.functions.php on line 16
通常情况下,这意味着我正在从未发表的表格和东西中选择内容.但在这种情况下,我不是……
这是getSetting函数:
public function getSetting($setting)
{
$query = $this->db->conn->prepare('SELECT value, param FROM ws_settings WHERE name = ?');
$query->bind_param('s', $setting);
$query->execute();
$query->bind_result($value, $param);
$query->store_result();
if ($query->num_rows() > 0)
{
while ($query->fetch())
{
return $value;
if ($param === '1')
{
$this->tpl->createParameter($setting, $value);
}
}
}
else
{
__('invalid.setting.request', $setting);
}
}
$this-> db变量通过构造函数传递.如有需要,请点击此处:
public function __construct($db, $data, $tpl)
{
$this->db = $db;
$this->tpl = $tpl;
$this->data = $data;
$this->data->setData('global', 'theme', $this->getSetting('theme'));
}
此外,由于我正在使用数据库,我的数据库连接:
class Database
{
private $data;
public function __construct($data)
{
$this->data = $data;
$this->conn = new MySQLi(
$this->data->getData('database', 'hostname'),
$this->data->getData('database', 'username'),
$this->data->getData('database', 'password'),
$this->data->getData('database', 'database')
);
if ($this->conn->errno)
{
__('failed.db.connection', $this->conn->errno);
}
date_default_timezone_set('Europe/Amsterdam');
}
我已经测试了连接,100%肯定它按预期工作.
我在配置文件中设置数据库连接:
'database' => array(
'hostname' => '127.0.0.1',
'username' => 'root',
'password' => ******,
'database' => 'wscript'
)
现在奇怪的是;表存在,请求的设置存在,数据库存在,但仍然,该错误不会离开.以下是DB正确的证明:
解决方法:
问题在于:
$query = $this->db->conn->prepare('SELECT value, param FROM ws_settings WHERE name = ?');
$query->bind_param('s', $setting);
prepare()方法可以返回false,您应该检查它.至于为什么它返回false,表名或列名(在SELECT或WHERE子句中)可能不正确?
另外,请考虑使用类似于$this->db->conn->error_list的内容来检查解析SQL时发生的错误. (我偶尔会回复实际的SQL语句字符串并粘贴到phpMyAdmin进行测试,但肯定会有一些失败.)
内容总结
以上是互联网集市为您收集整理的php – 致命错误:在布尔值上调用成员函数bind_param()全部内容,希望文章能够帮你解决php – 致命错误:在布尔值上调用成员函数bind_param()所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。