Php Mysqli准备语句Fetch Assoc
我正在为我的网站制作一个mysqli类,但是我被卡住了 这是我的班级:Php Mysqli准备语句Fetch Assoc,php,mysqli,Php,Mysqli,我正在为我的网站制作一个mysqli类,但是我被卡住了 这是我的班级: class Database { private $mysqli = ''; private $params = ''; private $result = ''; function Database($hostname, $username, $password, $database) { $this->mysqli = new mysqli($hostname,
class Database {
private $mysqli = '';
private $params = '';
private $result = '';
function Database($hostname, $username, $password, $database) {
$this->mysqli = new mysqli($hostname, $username, $password, $database);
if ($this->mysqli->connect_errno) {
printf('Error #%s -> %s', $this->mysqli->connect_errno, $this->mysqli->connect_error);
exit;
}
}
public function setQuery($query) {
$this->result = $this->mysqli->prepare($query);
$this->params = array();
return $this;
}
public function setParam($type, $value) {
$this->params[$type] = $value;
return $this;
}
public function execute() {
$params = $this->params;
foreach ($params as $key => $value) {
$this->result->bind_param($key, $value);
}
$user = $this->result->result_metadata()->fetch_assoc();
echo $user['username'];
}
}
我正在使用:
Core::$database->setQuery('SELECT * FROM habbo_characters WHERE id = ?')->setParam('i', 1)->execute();
但是我没有得到输出/空字符串作为输出。我做错了什么?
setParam函数工作正常,不是这样。
它包含id为1的用户(sql)。使用PDO:
<?php
/* Execute a prepared statement by passing an array of values */
$sql = 'SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour';
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':calories' => 150, ':colour' => 'red'));
$red = $sth->fetchAll();
$sth->execute(array(':calories' => 175, ':colour' => 'yellow'));
$yellow = $sth->fetchAll();
?>
更多的例子可以在这里找到:不要使用mysqli。使用PDO。这门课上已经有了你所需要的一切,还有很多地方不对劲。您需要重新阅读文档。调试代码以准确定位问题所在。不明白为什么-1,PDO是ligit替代方案,尽管在问题中它明确指出了
MySQLi