나는 아직 PDO를 배우지 못해서 놓친 것이있을 수 있지만 기본적으로 테이블에 행을 삽입하고 생성 된 ID를 선택하려고합니다.PDO 다중 쿼리 "SQLSTATE [HY000] : 일반 오류"
한 pdo 문에서 두 쿼리를 모두 좋아하는지 확실하지 않습니다. 다음은 SQL을 실행하기 위해 사용하는 코드입니다.
이 함수는 데이터베이스 클래스의 일부이며, $ this -> _ handle은 PDO 객체입니다.
public function Connect()
{
try {
$this->_handle = new \PDO('mysql:host='.$this->_host.';dbname='.$this->_database, $this->_username, $this->_password);
$this->_handle->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e) {
echo $e->getMessage();
}
}
내가 실행하고있어 SQL은 이것이다 :
INSERT INTO `users` (`Username`, `Password`, `PasswordSalt`, `Email`, `IsAdmin`, `LoginAttempts`, `LastLogin`, `LastLoginAttempt`, `Created`) VALUES (:username, :password, :passwordsalt, :email, :isadmin, :loginattempts, :lastlogin, :lastloginattempt, :created); SELECT LAST_INSERT_ID() as 'id'
사용자 생성 및 사용자 테이블에 존재하지만 그 이후로 그 오류된다.
누구나 잘못된 것을 볼 수 있습니까? :)
건배!
, 내가 mysqli의 multi_query과를 사용하여 다시 사라 이후했습니다 잘 작동 :) PDO 또는 PDOStatement에서 setAttribute (PDO :: ATTR_EMULATE_PREPARES, true)해야하는 여러 쿼리를 사용하려면 pdo_mysql을 사용하여 –
을 사용하십시오. 또한 pdo는 밑에있는 mysql_query를 사용하지 않는다 ... mysql_ * extension을 대체하는 방법이다. –