2012-05-02 2 views
0

출력시 $ sql 문에 오류가 있습니다.mySQL 쿼리 문

SQL 구문에 오류가 있습니다. 라인 1 "에서 ''근처 사용할 수있는 권리 구문에 대한 MySQL 서버 버전에 해당하는 설명서를 확인이 업데이트 사용자를 참조되어 activationkey 문을 설정합니다.

$query = "SELECT * FROM users"; 

    $result = mysql_query($query) or die(mysql_error()); 

     while($row = mysql_fetch_array($result)){ 

if ($queryString == $row["activationkey"]){ 
$sql="UPDATE users SET activationkey = '', status='activated' WHERE (id = $row[id])"; 

    if (!mysql_query($sql)) { *die('Error: in activation' . mysql_error());} 
} 
} 

나는 이유 구문 모른다 잘못

+2

'echo $ sql;'제발. – Sampson

+1

문제 외에도 mysqli 또는 PDO를 사용해야합니다. PDO – simshaun

+0

에 대한 http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers를 확인하십시오 UPDATE 사용자 SET activationkey = '', status = 'activated'WHERE (id =) 아, $ row [id]에서 아무것도 얻지 못합니다. –

답변

0
$query = "UPDATE `users` SET `activationkey` = '', status='activated' WHERE `id` = '$row['id']'"; 

팁 :.. SQL 주입은 해당 쿼리에서 수행 할 수 있기 때문에 내가 당신의 ID를 확보하는 것이 좋습니다 id = '$ 행이 ['ID ']'WHERE id를 사용하는 곳으로 내가 말하는 순간을 의미 = (int) ($ row [ 'id']), 이렇게하면 해당 쿼리에서 정수 만 지정됩니다. ng mysql_real_escape_string ($ row [ 'string'])