본문 바로가기
MySql

MySQL 단일 mysql_query () 호출로 여러 쿼리를 실행하는 PHP 코드

by 베이스 공부 2020. 12. 29.
반응형

PHP 클래스에서 아래의 SQL 코드를 실행하려고하는데 그렇게하면 오류가 발생합니다. 아래 코드는 PHPMyAdmin의 콘솔에서 완벽하게 실행되지만 PHP에서는 실행되지 않습니다.

SET @columns := (
  SELECT
    GROUP_CONCAT(column_name)
    FROM information_schema.columns
    WHERE table_schema = 'test'
    AND table_name = 'mytable'
    AND column_key <> 'PRI'
);

SET @sql := (
  SELECT CONCAT(
    'INSERT INTO mytable (', @columns, ') ',
    'SELECT ', @columns, ' FROM mytable ',
    'WHERE id = 1;'
  )
);

PREPARE stmt FROM @sql;

EXECUTE stmt;

이것이 내가 PHP에서하는 방법입니다.

$sql='';
$sql.="SET @columns := (
  SELECT
    GROUP_CONCAT(column_name)
    FROM information_schema.columns
    WHERE table_schema = 'test'
    AND table_name = 'mytable'
    AND column_key <> 'PRI'
    );";

$sql.="SET @sql := (
  SELECT CONCAT(
    'INSERT INTO mytable (', @columns, ') ',
    'SELECT ', @columns, ' FROM mytable ',
    'WHERE id = 1;'
  )
);";


$sql.="PREPARE stmt FROM @sql;

        EXECUTE stmt;";

$result = mysql_query($sql, $this->connection);

내가 도대체 ​​뭘 잘못하고있는 겁니까?

오류 확인 ::

Database query failed: 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 'SET @sql := (
                              SELECT CONCAT(
                                'INSERT INTO mytable(', @colu' at line 9 

 

해결 방법

 


mysql_query () 는 고유 한 쿼리를 보냅니다. (여러 쿼리는 supported) to the currently active database on the server that's 지정된 link_identifier와 연결됩니다.


 

참조 페이지 https://stackoverflow.com/questions/17403403

 

 

반응형

댓글