我试图以面向对象的方式通过mysqli连接数据库。我有一些错误,并解决了它们,但现在我可以解决这个问题。我在这里得到了我的代码,并且所有名称(数据库名称,用户,密码,主机和表名称)都是正确的(实际上,复制和粘贴),但查询仍返回0.
<?php
class DbConnection
{
public $link;
public function __construct()
{
$this->link = new mysqli("localhost","root","","todo");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
}
function RegisterUsers($username, $password, $ip, $name, $email)
{
$stmt = $this->link->prepare("INSERT INTO users (Username, `Password`, ip, Name, Email) VALUES (?,?,?,?)");
$stmt->bind_param("sssss", $username, $password, $ip, $name, $email);
$stmt->execute();
$stmt->store_result();
$count = $stmt->num_rows;
return $count;
}
}
$dbConn = new DbConnection();
echo $dbConn->RegisterUsers("a","a","a","a", "a");
?>
编辑:使用此代码,我得到了
在布尔值
上调用成员函数bind_param()
错误。
答案 0 :(得分:1)
Password
和name
是keywords。如果你将它用作列名
$stmt = $this->link->prepare("INSERT INTO users (Username, `Password`, ip, `Name`) VALUES (?,?,?,?)");