Re: [請益] mysql_fetch_array()

看板PHP作者 (ILikeWater)時間15年前 (2009/05/18 21:05), 編輯推噓2(202)
留言4則, 2人參與, 最新討論串3/3 (看更多)
※ 引述《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
action="test.php?value=1" 就會 post/get 一起出現
05/18 21:06, 1F

05/18 21:06, , 2F
啦~ XD
05/18 21:06, 2F

05/18 21:21, , 3F
偷懶的話用 $_REQUEST 取得就好了。
05/18 21:21, 3F

05/18 21:21, , 4F
但不建議這樣的使用方式。
05/18 21:21, 4F
文章代碼(AID): #1A4Lqs97 (PHP)
文章代碼(AID): #1A4Lqs97 (PHP)