我紛紛轉載此功能:我的功能有什麼問題?
function getTables()
{
global $db;
$value = array();
if (!($result = $db->query('SHOW TABLES'))) {
return false;
}
while ($row = $db->fetchrow($result)) {
if (empty($this->tables) or in_array($row[0], $this->tables)) {
$value[] = $row[0];
}
}
if (!sizeof($value)) {
$db->error("No tables found in database");
return false;
}
return $value;
}
以這種方式:
public function getTables() {
$value = array();
$tables = array();
$sql = "SHOW TABLES";
if($stmt = $this->connect->prepare($sql)) {
$stmt->execute();
while($row = $stmt->fetch_row()) {
if(empty($tables) or in_array($row[0], $tables)) {
$value[0] = $row[0];
}
}
$stmt->close();
if(!sizeof($value)) {
echo 'The database has no tables';
}
return $value;
} else {
echo 'Couldn\t query the database';
}
}
但第二個方法返回我The database has no tables
因爲我在db一個表這是不正確的。
第二種方法有什麼問題?
如果你想知道什麼connect
做:
public $connect;
public function __construct() {
// Define The Database Connection Or Die If Failed Connecting
$this->connect = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME) or die(DB_CONNECTION_ERROR_MESSAGE);
}
使其與數據庫的連接。和prepare()
這是一個mysqli聲明。我也試過query()
,結果一樣。
做一些調試。你的查詢返回了什麼?結果集中是否有行? – 2012-02-01 08:58:39
'connect()'和'prepare()'做了什麼? – Corubba 2012-02-01 09:00:32
讓我檢查查詢返回的內容。但結果只是'數組'。 – Roland 2012-02-01 09:01:01