이 쿼리에 실패 유지MySQL의 쿼리는 무결성 제약 조건 위반에 실패
무결성 제약 조건 위반 : 1,048 열 'login_name은'...
이
내 삽입 문은 NULL 일 수 없습니다
$insertUserQuery = 'INSERT INTO `users` (
`login_name`,
`password`,
`first_name`,
`last_name`,
`company_name`,
`company_address`,
`country`,
`email`,
`phone_number`,
`agency_type`,
`sold_before`,
`authorised`,
`current_module`
)
VALUES (
:login_name, :login_password, :first_name, :last_name, :company_name, :company_address, :country, :email, :phone_number, :agency_type, :sold_before, 0, 0);';
$bindings = array(':login_name' => $loginName,
':login_password' => sha1($password . Config::PASSWORD_SALT),
':first_name' => $firstName,
':last_name' => $lastName,
':company_name' => $companyName,
':company_address' => $companyAddress,
':country' => $country,
':email' => $emailAddress,
':phone_number' => $phone,
':agency_type' => null,
':sold_before' => null
);
print_r($bindings);
Db::query($insertUserQuery, $bindings);
데이터베이스 클래스는 at another question입니다. print_r()
은 배열에 확실히 값이 있음을 알려줍니다.
MySQL 함수이기도 한 '암호'라는 단어를 사용하여 저와 관련이 있습니다.
PDO는 SELECT와 동일한 방식으로 준비된 명령문을 INSERT로 지원합니까?
': login_name'과 같은 값을 인용해야합니까?
$ loginName이 (가) null이 아닌지 확실합니까? DB 래퍼 클래스로 디버깅 해 보셨습니까? (그래도 괜찮아 보인다.) –
예, 모든 바인딩 데이터를 echo'd했고 올바르게 나오고 있습니다. – alex
쿼리에 바인딩이 없습니다. –