Re: [請益] mysql_fetch_array()
※ 引述《sanforever (corn)》之銘言:
: ※ 引述《yorjing (yorjing)》之銘言:
: : 小弟我寫了讀取資料庫的的指令
: : $sql="SELECT distinct sender from message where date='$_GET[date]' and
: 如果你確定連線到資料庫這部份沒問題
: 單純以上面sql來看,你可以試試用sprintf
: $sql=sprintf("SELECT distinct `sender` FROM `message` WHERE
: `date` = '%s' AND
: ( `sender` = '%s' OR `receiver` = '%s' )
: ORDER BY `mid` asc ",$_GET['date'],$_GET['id'],$_GET['id']);
: mysql_query($sql); <=有錯誤,這句不就會印出訊息了嗎?
: : $result = mysql_query($sql)|| die('無法執行查詢: '.$sql);
: : while($record=mysql_fetch_array($result)){}
: : 發現印出來的sql語法可以直接在資料庫裡面執行
: : 但遇到while($record=mysql_fetch_array($result)){}
: : 就會產生
: : Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result
: : resource in C:\AppServ\www\main.php on line 17
: : 請問一下各位大大
: : 我寫得程式語法哪邊有問題嗎?
: : 先謝謝各位大大的幫忙
我覺得過度仰賴Dreamweaver自動產生的原生碼,會造成日後maintain一定的難度,
尤其是在資料庫與法的部分,小弟倒是建議可以使用Dreamweaver來layout版面,
至於資料庫的語法,含參數的接收盡量使用手寫語法。
例如將上述%s....%s....%s...
替換成(舉例):
$name=$_POST['name']; //接收POST過來的參數
$password=$_GET['pwd']; //接收GET過來的參數
$sql="SELECT * FROM dbname WHERE name='$name' AND password='$password'";
$result=mysql_query($sql,$link)
-----------------
這是示範,當然POST與GET不太可能同時出現
令外,如果使用mysql_fetch_array的時候,如果select結果沒有資料,就會出現錯誤,
所以建議在加上mysql_num_rows判斷是否有資料(即資料數>0)這樣就可確保無誤!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.126.38.140
推
05/18 21:06, , 1F
05/18 21:06, 1F
→
05/18 21:06, , 2F
05/18 21:06, 2F
推
05/18 21:21, , 3F
05/18 21:21, 3F
→
05/18 21:21, , 4F
05/18 21:21, 4F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):