반응형
이 간단한 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
반응형
'itsource' 카테고리의 다른 글
Form Data 검사 방법 (0) | 2022.11.04 |
---|---|
PHP 구문 분석/구문 오류 및 해결 방법 (0) | 2022.11.04 |
foreach 루프의 값을 배열에 저장하려면 어떻게 해야 합니까? (0) | 2022.11.04 |
관찰 가능한 rxJava2와 플로우 가능한 rxJava2 (0) | 2022.11.04 |
PHP에서 cURL을 사용하여 응답을 얻는 방법 (0) | 2022.11.04 |