我看了各種論壇軟件,試圖複製一個想法。這是爲了讓我更好地使用PHP的類,但是,這是我第一次使用類。我創建了一個類,允許我通過簡單的一行命令從數據庫中獲取信息。我知道大多數人會說這不是一個好主意,但是,當用戶插入數據時,這條線不會被使用。在PHP中集成班級
這裏是類:
$db = new DB_MySQLi;
class DB_MySQLi
{
function simple_select($table, $fields="*", $conditions="", $options=array())
{
$query = "SELECT ".$fields." FROM ".$this->table_prefix.$table;
if($conditions != "")
{
$query .= " WHERE ".$conditions;
}
if(isset($options['group_by']))
{
$query .= " GROUP BY ".$options['group_by'];
}
if(isset($options['order_by']))
{
$query .= " ORDER BY ".$options['order_by'];
if(isset($options['order_dir']))
{
$query .= " ".my_strtoupper($options['order_dir']);
}
}
if(isset($options['limit_start']) && isset($options['limit']))
{
$query .= " LIMIT ".$options['limit_start'].", ".$options['limit'];
}
else if(isset($options['limit']))
{
$query .= " LIMIT ".$options['limit'];
}
return $this->query($query);
}
}
每當我試圖運行這樣的查詢:
$query = $db->simple_select("users", "*");
我得到這些錯誤: 公告:未定義的屬性:DB_MySQLi :: $ TABLE_PREFIX 致命錯誤:調用未定義的方法DB_MySQLi :: query()
DB_MySQLi怎麼沒有定義?
'DB_MySQLi'不是未定義的。你正試圖對類「DB_MySQLi」調用'query()',它沒有'query()'方法。你是否想要擴展PDO,或者使用某種實例變量來存儲數據庫連接? – Bytewave
我有$ db = new DB_MySQLi;在代碼 –
這只是你的數據庫包裝。它不是數據庫連接 - PHP不知道你正在使用哪個數據庫,它在哪裏,或者如何登錄。這就是['PDO'](https://secure.php.net/manual/en/book.pdo.php)和['MySQLi'](https://secure.php.net/manual/en/book .mysqli.php)是。它們處理數據庫連接和查詢的複雜工作,幷包含可用於包裝類的'query()'方法。 – Bytewave