2010-10-23 75 views
0

我想實現一個提取函數從我的數據庫抓取數據並將其顯示在表單中,以便我更新數據庫。形式是好的,但提取功能.. 這是我有:PHP提取()函數

$id = $_GET['id']; 

$qP = "SELECT * FROM test_mysql WHERE id = '$id' "; 
$rsP = mysql_query($qP); 
$row = mysql_fetch_array($rsP); 
extract($row); 
$fullname = trim($fullname); 
$dob = trim($dob); 
$time = trim($time); 

但它告訴我:

警告:mysql_fetch_array()預計 參數1是資源,布爾 鑑於

警告:提取()預計參數 1是陣列,空給出

事情是該代碼在上下文中工作正常,但給予該誤差在dremweaver。 可能是什麼問題?

+3

請注意,請確保使用'mysql_real_escape_string'爲您的$ id變量添加一些安全措施 - 請記住「Little Bobby Tables」http://xkcd.com/327/ :) – robjmills 2010-10-23 10:59:49

+2

seengee,+1。或者如果需要數字,則使用intval()。或者更改爲準備好的語句。 – 2010-10-23 11:02:24

回答

2

你最有可能與MySQL的錯誤。試試這個:

$rsP = mysql_query($qP) or die(mysql_error()); 

這會告訴你,如果你的查詢出了問題。

我馬上可以,你應該調查想到的一些可能的錯誤:

  • 你必須(使用的mysql_connect)與數據庫的連接?
  • 表test_mysql是否存在?
  • $ _GET ['id']是數字還是字符串?如果它是一個數字,您的查詢的末尾應改爲id = $id
0

這可能是由於從數據庫(或缺乏)的返回值false。

0

如PHP手冊中指定,

的mysql_query()返回關於成功 的資源,或者在錯誤FALSE。

因此,看起來像查詢中存在問題。你可以看看錯誤信息並繼續調查問題:

$qP = "SELECT * FROM test_mysql WHERE id = '$id' "; 
$rsP = mysql_query($qP); 
echo mysql_error(); 
-2

我遇到同樣的問題..我簡單地做這個固定它...

在你的代碼,你必須

extract($row); 

將其更改爲

extract((array)$row); 

希望它可以幫助...謝謝...那隻能說明在0123變量中有一個數組而不僅僅是一個變量。

+0

他的問題不在於提取是查詢。強制數組不會使代碼正常工作,只是確保關於提取的第二個錯誤不會彈出。 – transilvlad 2012-09-21 17:14:45