天天看點

mysql_fetch_array 失敗_無語的出錯,mysql_fetch_array()

MySQL PHP 資料庫連接配接 查詢 代碼如下,求幫忙看一下吧!

getConn();}public function getConn(){$db = require_once 'config/config.php';$this->dbhost = $db['dbhost'];$this->dbuser = $db['dbuser'];$this->dbpsw = $db['dbpsw'];$this->dbchar = $db['dbchar'];$this->dbname = $db['dbname'];$this->tablepre = $db['tablepre'];$this->conn = mysql_connect($this->dbhost,$this->dbuser,$this->dbpsw) or die(mysql_error()."

Mysql連接配接失敗!");mysql_select_db($this->dbname,$this->conn) or die(mysql_error()."

資料庫通路出錯");mysql_query("set names ".$this->dbchar,$this->conn);}public function query($sql){return mysql_query($sql,$this->conn) or die(mysql_error()."

SQL執行出錯:$sql");}public function getDataArrays($sql,$type = MYSQL_BOTH){$result = $this->query($sql);$refArr = array();while ($row = mysql_fetch_array($result,$type)){$refArr[] = $row;}return $refArr;}public function closeConn(){mysql_close($this->conn);}}

調用如下:

$conn = new Conn();$sql = "select * from qj_content";$contentList = $conn->getDataArrays($sql,MYSQL_ASSOC);$conn->closeConn();

執行結果如下:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\AppServ\www\qjcentury\conn.php on line 45

第45行代碼在上面用紅色标注了

回複讨論(解決方案)

那塊用紅色标注的被弄成php代碼了,我暈

public function getDataArrays($sql,$type = MYSQL_BOTH){

$result = $this->query($sql);

$refArr = array();

while ($row = mysql_fetch_array($result,$type)){

$refArr[] = $row;

}

return $refArr;

}

怎麼都沒有人來?

幾次提問 不論簡單還是困難都沒有人來幫幫解答一下,

CSDN什麼時候變得這麼冷清了?

估計sql 出問題了

在while 上 echo mysql_error(); 看看

LZ看看W3C上面的例子吧

文法

mysql_fetch_array(data,array_type)

參數 描述

data 可選。規定要使用的資料指針。該資料指針是 mysql_query() 函數産生的結果。

array_type

可選。規定傳回哪種結果。可能的值:

MYSQL_ASSOC - 關聯數組

MYSQL_NUM - 數字數組

MYSQL_BOTH - 預設。同時産生關聯和數字數組

query 方法改成這樣public function query($sql){ $rs = mysql_query($sql,$this->conn) or die(mysql_error()."

SQL執行出錯:$sql"); return $rs; }

因為 mysql_query($sql,$this->conn) or die(mysql_error()."

SQL執行出錯:$sql")

是一個邏輯表達式,直接傳回的話隻能是邏輯值。

是以要寫作

$rs = mysql_query($sql,$this->conn) or die(mysql_error()."

SQL執行出錯:$sql");

因為 = 的優先級高于 or 是以 $rs = mysql_query($sql,$this->conn) 被先執行

算式變為

$rs or die(mysql_error()."

SQL執行出錯:$sql");

當然還是邏輯表達式啦,但其結果被抛棄了

本文原創釋出php中文網,轉載請注明出處,感謝您的尊重!