绑定参数函数bind_param()
被认为是一个非对象并且不断抛出那些让我头疼的错误,因为我是PHP的新手。用于连接到数据库的代码最初是抛出错误,即使我从我正在工作的登录脚本中复制它...
<?php
class User {
private $result;
private static $db;
public function __construct($cookie) {
self::$db = mysqli_connect('localhost', 'username', '', 'dbname');
var_dump(self::$db);
$query = self::$db->prepare('SELECT * FROM users WHERE cookie=?');
var_dump($query);
$query->bind_param('s', $cookie);
$this->result = $query->get_result()->fetch_array();
}
public static function checkUser($cookie) {
self::$db = mysqli_connect('localhost', 'username', "", 'dbname');
$query = self::$db->prepare('SELECT cookie FROM users WHERE cookie=?');
$query->bind_param('s', $cookie);
$result = $query->get_result()->fetch_array();
if ($cookie == $result[0]) return true;
return false;
}
public function getName() {
return $this->result['name'];
}
public function getSurname() {
return $this->result['surname'];
}
public function getEmail() {
return $this->result['email'];
}
public function getGroup() {
return $this->result['perm_group'];
}
public function getEstablishment() {
return $this->result['establishment'];
}
}
?>
&#13;
我们的想法是创建一个类(User),以便我们可以从其他页面调用函数来获取用户的详细信息,例如Cookie。我已经这么做了几个小时了,老实说,我不知道最近发生了什么。
答案 0 :(得分:0)
mysqli::prepare将返回false。
$query = self::$db->prepare('SELECT cookie FROM users WHERE cookie=?');
$query->bind_param('s', $cookie);
如果有错误,则没有结果对象来调用bind_param。
答案 1 :(得分:0)
这个问题很简单,我们忘记了一个存储cookie的列。
对于愚蠢的问题女士们抱歉