2011-05-07 2 views
1

phpMyAdmin에서 수동으로 확인하면 내 sql 쿼리가 제대로 작동하지만 PHP를 통해 처리하려고하면 mysql_query 구문 오류가 발생합니다. 이 문제를 해결하는 방법?SQL 구문은 괜찮지 만 PHP는 여전히 오류가 발생합니다.

오류 메시지 :

Invalid query: 
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO scores(user_id) VALUES (LAST_INSERT_ID())' at line 1 
Whole query: 
INSERT INTO users (id_fb, name, first_name, last_name, email, link, first_login) 
VALUES ('1000001010101010', 'Bart Roza', 'Bart', 'Roza', '[email protected]','http://www.facebook.com/profile.php?id=1000001010101010','2011-05-07 11:15:24'); 
INSERT INTO scores(user_id) VALUES (LAST_INSERT_ID()); 

내 PHP 함수 :

public function createUser() 
{ 
    $time = date("Y-m-d H:i:s"); 

    $insert = "INSERT INTO users (id_fb, name, first_name, last_name, email, link, first_login) VALUES (" . 
       "'" . $this->me['id'] . "', " . 
       "'" . $this->me['name'] . "', " . 
       "'" . $this->me['first_name'] . "', " . 
       "'" . $this->me['last_name'] . "', " . 
       "'" . $this->me['email'] . "'," . 
       "'" . $this->me['link'] . "'," . 
       "'" . $time . "'); " . 
       "INSERT INTO scores(user_id) VALUES (LAST_INSERT_ID());"; 

    $result = mysql_query($insert); 
    if (!$result) { 
     $message = 'Invalid query: ' . mysql_error() . "\n"; 
     $message .= 'Whole query: ' . $insert; 
     die($message); 
    } 
} 

편집 : 솔루션

감사합니다!

+2

mySQL 쿼리 문제가 발생하면 항상 PHP 코드가 아닌 최종 생성 된 쿼리를 살펴보십시오. PHP 코드는 여기에 의미가 없습니다 –

+1

@Pekka :이 경우에는 의미가 있습니다. – zerkms

답변

5

mysql_query은 하나의 쿼리 만 허용하므로 쿼리 문자열을 2 개의 분리 된 쿼리로 분할하고 2 mysql_query 호출로 수행해야합니다.

2

mysql_query 기능을 사용하여 여러 쿼리를 한 번에 실행할 수 없습니다. 별도의 mysql_query 호출

는 mysql_query()를 @zerkms AS (여러 쿼리는 지원되지 않음) 고유 쿼리

0

를 보내는 두 쿼리를 실행해야하고 @Shakti 말했다는 mysql_query은 지원하지 않습니다 여러 개의 쿼리. 이러한 기능을 사용하려면 mysqli로 마이그레이션하는 것이 좋습니다. mysqli_multi_query

관련 문제