我马上去追。在这一点上,我能用这个类实现的只是一个数据库连接。我无法查询。你能确切地告诉我如何使这个工作和/或告诉我如何以更好的方式重新编码它吗?
<?php
class database{
public $dbHost = '';
public $dbUser = '';
public $dbPass = '';
public $dbName = '';
public $db;
public function __construct(){}
public function dbConnect(){
$mysqli = new mysqli($this->dbHost, $this->dbUser, $this->dbPass, $this->dbName);
/* check connection */
if (mysqli_connect_errno()){
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}else{
echo 'connection made';
}
/* close connection */
$mysqli->close();
}
public function query($sql){
$query = $sql;
self::preparedStatement($query);
}
public function preparedStatement(){
if ($stmt = $mysqli->prepare($query)){
/* execute statement */
$stmt->execute();
/* bind result variables */
$stmt->bind_result($name, $code);
/* fetch values */
while ($stmt->fetch()) {
printf ("%s (%s)\n", $name, $code);
}
/* close statement */
$stmt->close();
}
}
public function __destruct(){}
}
?>
最佳答案
这对我有效。我已经评论了我的更改。
<?php
class database{
public $dbHost = '';
public $dbUser = '';
public $dbPass = '';
public $dbName = '';
public $db;
public function __construct(){}
public function dbConnect(){
### not $mysqli
$this->db = new mysqli($this->dbHost, $this->dbUser, $this->dbPass, $this->dbName);
/* check connection */
if (mysqli_connect_errno()){
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}else{
echo 'connection made';
}
/* close connection */
### $this->db->close(); // DO NOT close the connection here!
}
public function query($sql){
$query = $sql;
self::preparedStatement($query);
}
public function preparedStatement($query){ ### parameter $query added
if ($stmt = $this->db->prepare($query)){ ### not $mysqli->prepare()
/* execute statement */
$stmt->execute();
/* bind result variables */
$stmt->bind_result($name, $code);
/* fetch values */
while ($stmt->fetch()) {
printf ("%s (%s)\n", $name, $code);
}
/* close statement */
$stmt->close();
}
}
public function __destruct(){}
}
### Test code
/*
$db = new Database();
$db->dbHost = '127.0.0.1';
$db->dbUser = 'root';
$db->dbPass = 'root';
$db->dbName = 'test';
$db->dbConnect();
$db->query('SELECT * FROM test');
*/
?>
关于php - 如何让这个mysqli数据库类工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1304732/