PHP不完整类OOP
你好,我有这个密码PHP不完整类OOP,php,mysql,oop,Php,Mysql,Oop,你好,我有这个密码 public function query($sql, $params = array()) { $this->_error = false; if($this->_query = $this->_pdo->prepare($sql)) { $x = 1; if(count($params)) { foreach($params as $
public function query($sql, $params = array()) {
$this->_error = false;
if($this->_query = $this->_pdo->prepare($sql)) {
$x = 1;
if(count($params)) {
foreach($params as $param) {
$this->_query->bindValue($x, $param);
$x++;
}
}
if($this->_query->execute()) {
$this->_results = $this->_query->fetchAll(PDO::FETCH_OBJ);
$this->_count = $this->_query->rowCount();
} else {
$this->_error = true;
}
}
return $this;
}
当我运行它时,它说我有错误
$this->_query->bindValue($x, $param);
错误消息说
可捕获的致命错误:类_PHP_complete_类的对象无法在中转换为字符串
需要帮忙吗
多谢各位
编辑
$params的var_转储
array(1) {
[0]=> object(__PHP_Incomplete_Class)#1 (6) {
["__PHP_Incomplete_Class_Name"]=> string(4)
"User" ["_db":"User":private]=> object(__PHP_Incomplete_Class)#2 (2) {
["__PHP_Incomplete_Class_Name"]=> string(2) "DB"
["connection"]=> NULL
}
["_sessionName":"User":private]=> string(4) "user"
["_cookieName":"User":private]=> string(4) "hash"
["_data":"User":private]=> object(stdClass)#3 (7) {
["id"]=> string(3) "144"
["username"]=> string(5) "admin"
["password"]=> string(64) "0611affa6664e471b939cd3197b49e0c3b47d146fc12a472c4275dbd85a7cd67"
["salt"]=> string(32) "458a0dbfbd9bdca381e50b8d753329ea"
["name"]=> string(12) "Artur Papyan"
["joined"]=> string(19) "2013-11-29 07:41:54"
["group"]=> string(1) "1"
}
["_isLoggedIn":"User":private]=> bool(true)
}
}
错误表明:$params至少包含一个_PHP_complete_Class对象,显然无法转换为字符串来填充查询
之所以要获取_PHP_complete_类对象,是因为以前没有加载该类的会话存储对象未序列化。因此,在会话开始之前,必须包含会话存储类。如果您需要我的建议,自动加载是加载类的最佳方式,因此您可以完全忘记include/require语句。您可以在此处找到更多信息:$params包含哪些内容?该数组中有没有没有没有uu-toString方法的对象?你是偶然使用序列化对象吗?参数包含sql syndax,不,我不序列化对象扫描你显示$paramsher的var_转储是var_转储;因为字符限制不允许我写,所以我会像回复一样发布。我会尝试使用include和include_,一旦我有了自动加载功能,但是在我的本地服务器上一切都很好,在web服务器上我有问题,在我的web服务器上,php版本是5.3>@Arturik1988。在会话开始之前,它在本地服务器上工作吗?