Executando várias consultas usando o PDO
Estou tentando executar a seguinte consulta usando uma declaração preparada para DOP, mas quando ligo$query->fetch();
lança uma exceçãoSQLSTATE[HY000]: General Error
.
Este é o código PHP (observe que a classeDatabase
- ou a variável$db
no código - é apenas um invólucro simples para a classePDO
portanto, todas as chamadas DOP devem ser feitas usando$db->pdo->{some PDO function}();
):
$db = new Database(); //Create a new object of type Database establishing a connection to the MySQL database
$query = $db->pdo->prepare("INSERT INTO `orders` (`order_type`, `item`, `amount`, `price`, `price_btc`, `status`, `timestamp`, `placed_by`, `secret`, `first_name`, `last_name`, `address_1`, `address_2`, `city`, `zip_code`, `country`, `state`, `phone_number`)
VALUES(:order_type, :item, :amount, :price, :price_btc, :status, :timestamp, :placed_by, :secret, :first_name, :last_name, :address_1, :address_2, :city, :zip_code, :country, :state, :phone_number);
SELECT * FROM `orders` WHERE `ID`=LAST_INSERT_ID();"); //Prepare the two queries to be executed
/*HERE IS SOME CODE TO BIND PLACEHOLDERS TO SOME VALUES*/
if(!$query->execute()){
error(); //Handle the error and terminate execution
}
if($query->rowCount() != 1){
error(); //Handle the error and terminate execution
}
$query->setFetchMode(PDO::FETCH_ASSOC);
$order = $query->fetch(); //THIS IS WHERE THE EXCEPTION IS THROWN!
Eu tentei executar a consulta manualmente através do PHPMyAdmin e funcionou bem. Também li que o PDO não suporta várias consultas na mesma instrução, mas não deveria lançar e exceção ao executar$query->execute();
?
Além disso,$query->rowCount();
Retorna 1, mas quando tento buscar o resultado, gera uma exceção de erro geral.
Eu tentei muitas outras coisas, como substituir oSELECT
declaração com umSELECT LAST_INSERT_ID();
, Mas nada parece funcionar.
Gostaria muito de receber sua ajuda!