我一直在尝试将PHP能力扩展到初学者级别。 OOP是最终目标。现在我正在尝试使用和理解一个我可以调用的类来从我的数据库中提取信息或插入到数据库中。我找到了关于这样一个主题的以下教程,也许我遗漏了一些东西,但我无法弄清楚如何在屏幕上实际打印任何结果?
以下是教程中提供的代码....
class Db {
// The database connection
protected static $connection;
/**
* Connect to the database
*
* @return bool false on failure / mysqli MySQLi object instance on success
*/
public function connect() {
// Try and connect to the database
if(!isset(self::$connection)) {
// Load configuration as an array. Use the actual location of your configuration file
$config = parse_ini_file('./config.ini');
self::$connection = new mysqli('localhost',$config['username'],$config['password'],$config['dbname']);
}
// If connection was not successful, handle the error
if(self::$connection === false) {
// Handle error - notify administrator, log to a file, show an error screen, etc.
return false;
}
return self::$connection;
}
/**
* Query the database
*
* @param $query The query string
* @return mixed The result of the mysqli::query() function
*/
public function query($query) {
// Connect to the database
$connection = $this -> connect();
// Query the database
$result = $connection -> query($query);
return $result;
}
/**
* Fetch rows from the database (SELECT query)
*
* @param $query The query string
* @return bool False on failure / array Database rows on success
*/
public function select($query) {
$rows = array();
$result = $this -> query($query);
if($result === false) {
return false;
}
while ($row = $result -> fetch_assoc()) {
$rows[] = $row;
}
return $rows;
}
/**
* Fetch the last error from the database
*
* @return string Database error message
*/
public function error() {
$connection = $this -> connect();
return $connection -> error;
}
/**
* Quote and escape value for use in a database query
*
* @param string $value The value to be quoted and escaped
* @return string The quoted and escaped string
*/
public function quote($value) {
$connection = $this -> connect();
return "'" . $connection -> real_escape_string($value) . "'";
}
}
这就是我试图从其他文件中调用它的方式。
$db = new Db();
$rows = $db -> select("SELECT `id` FROM `inventory`");
我设法通过将我的echo直接插入到函数中来获取数据库的输出,但这对我的模型没有帮助。
我假设它停留在while循环中。 我应该注意到,自从我开始使用PHP以来已经有几年了,而且自从我使用它以来已有几年......生活就像我猜的那样 任何帮助非常感谢。
答案 0 :(得分:1)
好,
感谢u_mulder让我通过它。它真的花了15个多小时,但我想出来了。
现在,我不确定我是否完全理解为什么,但使用[]
是一个小错误 public function select($query) {
$rows = array();
$result = $this -> query($query);
if($result === false) {
return false;
}
while ($row = $result -> fetch_assoc()) {
$rows = $row;
}
return $rows;
}
第8行应如下所示:
$rows = $row;