2012-07-29 69 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的名称会更容易。