2012-07-29 2 views
0

다음 오류가 발생했습니다. 'id'필드 목록에서 애매합니다. 내가 유일하게이 한 Statment필드 목록의 '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 쿼리에 문제가 있습니다. $ fields에는 무엇이 포함되어 있습니까? –

+0

'@ $ _ GET'는 이상합니다. –

답변

0

에서 올바른 ID를 잡을 수있는 방법 MySQL의 쿼리에 문제가 될 것으로 보인다. 당신의 필드의 이름과 함께 테이블의 이름을 지정하면 내가 생각하는 가장 쉬운 해결책이 될 것입니다 :

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

하지만 난 강력하게 Doctrine을 추천합니다!

0

테이블의 ID 이름을 변경하는 것이 더 쉽습니다.

관련 문제