2012-07-29 70 views
0

我遇到了以下錯誤,字段列表中的列'id'不明確。我怎麼能唯一從這個聲明中抓取正確的ID字段列表中的列'id'不明確

function data() { 
if($at = mysql_real_escape_string(@$_GET['id'])){$at = mysql_real_escape_string(@$_GET['id']); 

$arg = func_get_args(); 
unset($arg[0]); 
$fields = '`'.implode('`,`', $arg).'`'; 
$query = mysql_query("SELECT $fields FROM `list` LEFT JOIN fruits ON location.id = 
fruits.fid  
LEFT JOIN store ON store.id = location.catid WHERE location.link = '$at'")or die(mysql_error()); 
$query_result = mysql_fetch_assoc($query); 
$query_row = mysql_num_rows($query); 
if($query_row==0){ 
return false; 
}else{ 
foreach ($arg as $field){ 
$arg[$field] = $query_result[$field]; 
}return $arg; 
} 
} 
} 
+1

你的mysql查詢存在問題。 $字段包含什麼? – 2012-07-29 01:40:15

+0

'@ $ _ GET'很奇怪.. – 2012-07-29 01:47:47

回答

0

似乎是你的mysql查詢中的問題。與字段的名稱沿指定表的名稱將是我想最簡單的方法:

$fields = 'tablename'.$fields; 
1
$fields = '`list`.'.implode('`, `list`.`', $arg).'`'; 

但我強烈建議Doctrine

0

發現只更改表中一個id的名稱會更容易。