我正在尝试从名为DB
class DB extends SomeClass {
public static function query () {
$query = "SELECT title, excerpt FROM table1";
$items = mysql_query($query) or die( mysql_error() . '<br>' . $query);
return $items
}
}
while ( $item = mysql_fetch_array( DB::query() ) ):
extract($item);
echo $title . '<br>';
echo $excerpt;
但它不起作用,错误说:
警告:mysql_fetch_array()期望参数1为资源,布尔值为
答案 0 :(得分:0)
与其他语言不同,PHP or
运算符ALWAYS返回一个布尔值。
所以,mysql_query($query) or die( mysql_error() . '<br>' . $query)
总是给你一个布尔值,即使mysql_query
返回一个资源(因此评估为真)。
答案 1 :(得分:0)
您应该使用PDO类而不是MySQL程序函数。
类定义:
class DB {
const DSN = 'mysql:dbname=sample;host=localhost';
const USER = 'testuser';
const PASSWORD = 'testuser';
private $db;
public function __construct() {
$this->db = new PDO(self::DSN, self::USER, self::PASSWORD);
}
public function getItems() {
$query = 'SELECT title, excerpt FROM table1';
$stmt = $this->db->query($query);
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
}
使用方法:
try {
$db = new DB;
print_r($db->getItems());
} catch (Exception $e) {
echo $e->getMessage();
}
有关详细信息,请参阅手册 http://www.php.net/manual/en/book.pdo.php