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。