복붙노트

[SQL] 어떻게 PHP :: PDO를 사용하여 변수 MySQL의 스크립트를 실행하려면?

SQL

어떻게 PHP :: PDO를 사용하여 변수 MySQL의 스크립트를 실행하려면?

나는 PDO가 예외를 throw 긴 스크립트를 실행할 수 없습니다입니다 :

SQLSTATE[HY000]: General error

나는 변수를 포함하지 않는 스크립트를 제출하는 경우는 / O 문제 w를 실행합니다. 같은 스크립트는 phpMyAdmin과 인터페이스에서 실행됩니다.

여기 내 코드는 다음과 같습니다

 try {
 $dsn = "mysql:host=" . DB_SERVER . ";dbname=" . DB_DEFAULT;
 $db = new PDO($dsn, DB_USER, DB_PASS);
 $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 $q = $db->query($query);
 if (!$q) {
 echo $db->errorInfo();
  } else {
        $rows = $q->fetchAll(PDO::FETCH_ASSOC);
    }
} catch (PDOException $e) {
    var_dump($e);
 }

여기 PDO에 의해 실행되지 않는 몇 가지 테스트입니다 :

SET @ra_LMC:=80.9;
SELECT @ra_LMC;

어떻게 다 줄 스크립트 PDO와 execut해야합니까?

감사 아르 멘.

해결법

  1. ==============================

    1.PDO는 하나 개의 쿼리 () 요청에 여러 문장의 실행을 허용하지 않습니다. 새 쿼리 () 호출로 두 번째 줄 (선택)을 넣을 수 있습니다하지만 당신의 @ra_LMC 변수는 현재 연결에서 볼 수 있어야합니다.

    PDO는 하나 개의 쿼리 () 요청에 여러 문장의 실행을 허용하지 않습니다. 새 쿼리 () 호출로 두 번째 줄 (선택)을 넣을 수 있습니다하지만 당신의 @ra_LMC 변수는 현재 연결에서 볼 수 있어야합니다.

    전체 스크립트를 읽으려면 파일을 구문 분석 할 필요가 쿼리 ()를 호출하여 각 문을 실행합니다.

  2. ==============================

    2.PDO는 한 번에 하나의 문을 실행할 수 있습니다. 당신은 에테르 세트를 실행하고이 별도의 문으로 선택할 수 있습니다. 또는 당신은 FROM 사용하여 변수를 설정할 수 있습니다.

    PDO는 한 번에 하나의 문을 실행할 수 있습니다. 당신은 에테르 세트를 실행하고이 별도의 문으로 선택할 수 있습니다. 또는 당신은 FROM 사용하여 변수를 설정할 수 있습니다.

    SELECT @ra_LMC FROM (SELECT @ra_LMC:=80.9) q
    
  3. from https://stackoverflow.com/questions/4683110/how-to-execute-mysql-script-with-variables-using-phppdo by cc-by-sa and MIT license