SQLSTATE[HY000]: 在 symfony 中创建一般错误 table
SQLSTATE[HY000]: General error create table in symfony
我有这个代码:
try{
$aws = $this->getContainer()->get(Service::class);
$query = 'DROP TABLE IF EXISTS newtable;CREATE TABLE newtable LIKE actions;';
$aws->executeQuery($query);
}catch (\Exception $exception){
$output->writeln("Can't create new tables, with message :");
$output->writeln(sprintf("%s", $exception->getMessage()));
}
和服务 class 函数 executeQuery
:
public function executeQuery($query, $multiple = true, $fetch = true)
{
$res = $this->conn->prepare($query);
$result = $res->execute();
return ($fetch) ? ($multiple ? $res->fetchAll(\PDO::FETCH_ASSOC) : $res->fetch(\PDO::FETCH_ASSOC)) : $result;
}
table 已创建,但我收到错误消息:
SQLSTATE[HY000]: General error
。我不明白删除此错误的问题是什么。感谢您的帮助。
你不应该在没有 return 数据的语句上使用 fetch 或 fetchAll,例如 update/insert/drop/create table
这可能是问题所在。
改变
$aws->executeQuery($query);
到
$aws->executeQuery($query, false, false );
应该有帮助,因为只有 $res->execute()
的结果会被 returned。
我有这个代码:
try{
$aws = $this->getContainer()->get(Service::class);
$query = 'DROP TABLE IF EXISTS newtable;CREATE TABLE newtable LIKE actions;';
$aws->executeQuery($query);
}catch (\Exception $exception){
$output->writeln("Can't create new tables, with message :");
$output->writeln(sprintf("%s", $exception->getMessage()));
}
和服务 class 函数 executeQuery
:
public function executeQuery($query, $multiple = true, $fetch = true)
{
$res = $this->conn->prepare($query);
$result = $res->execute();
return ($fetch) ? ($multiple ? $res->fetchAll(\PDO::FETCH_ASSOC) : $res->fetch(\PDO::FETCH_ASSOC)) : $result;
}
table 已创建,但我收到错误消息:
SQLSTATE[HY000]: General error
。我不明白删除此错误的问题是什么。感谢您的帮助。
你不应该在没有 return 数据的语句上使用 fetch 或 fetchAll,例如 update/insert/drop/create table
这可能是问题所在。
改变
$aws->executeQuery($query);
到
$aws->executeQuery($query, false, false );
应该有帮助,因为只有 $res->execute()
的结果会被 returned。