반응형
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
반응형
'MySql' 카테고리의 다른 글
MySQL 다른 테이블에서 얻은 값을 사용하여 한 테이블에서 행 선택 MYSQL (0) | 2020.12.29 |
---|---|
MySQL 프로 시저 생성 오류 1046 (3D000) : 선택된 데이터베이스가 없습니다. (0) | 2020.12.29 |
MySQL 알파벳순으로 정렬 한 다음 숫자 순으로 정렬 (0) | 2020.12.29 |
MySQL 문자열에서 마지막 쉼표 뒤의 모든 문자를 제거하는 쿼리 (0) | 2020.12.29 |
MySQL 오류! MySQL 관리자 또는 서버 PID 파일을 찾을 수 없습니다! QNAP (0) | 2020.12.29 |
댓글