itsource

이 간단한 PDO 준비 문구가 작동하지 않는 이유는 무엇입니까?

mycopycode 2022. 11. 4. 21:33
반응형

이 간단한 PDO 준비 문구가 작동하지 않는 이유는 무엇입니까?

$stmt =$dbh->prepare('SELECT * FROM config WHERE group=:group AND name=:name');
$stmt->bindParam(':group',$group, PDO::PARAM_STR);
$stmt->bindParam(':name',$name, PDO::PARAM_STR);

예외:

PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server
version for the right syntax to use near 'group=? AND name=?' at line 1

실행 함수에 파라미터를 입력하려고 했습니다.같은 메시지입니다.

설정한 PDO 옵션은 다음과 같습니다.

PDO::ATTR_ERRMODE=> PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => FALSE,

group는 예약어이며 마리아에서 백틱이 없으면 식별자로 사용할 수 없습니다.DB:

SELECT * FROM `config` WHERE `group`= :group AND `name` = :name

group는 SQL 키워드입니다.따옴표가 없는 열 이름으로 사용할 수 없습니다.MySQL에서는 다음과 같은 컬럼 이름이 back-ticks와 함께 따옴표는 다음과 같습니다.

$stmt =$dbh->prepare('SELECT * FROM config WHERE `group` = :group AND `name` = :name');

언급URL : https://stackoverflow.com/questions/55076508/why-does-this-simple-pdo-prepared-statement-wont-work

반응형