SQLSTATE[HY000]:在 symfony 中创建表的一般错误
Posted
技术标签:
【中文标题】SQLSTATE[HY000]:在 symfony 中创建表的一般错误【英文标题】:SQLSTATE[HY000]: General error create table in symfony 【发布时间】:2019-01-04 07:36:25 【问题描述】:我有这个代码:
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()));
还有Service类函数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;
表已创建,但我收到错误消息:
SQLSTATE[HY000]: General error
。我不明白删除此错误的问题是什么。感谢您的帮助。
【问题讨论】:
Symfony 使用原则,不是吗?看这个问题,可能与你想要的有关:***.com/questions/14041484/mysql-with-symfony2 @Mickael Leger 建议使用 Doctrine 不是必须的General error
,你能提供更多信息吗?看来您与数据库的连接有问题,您确定连接一切正常吗?尝试一些简单的查询?
正如我所说的表已创建,所以连接良好
【参考方案1】:
你不应该在更新/插入/删除/创建表等不返回数据的语句上使用 fetch 或 fetchAll
这可能是问题所在。
变化
$aws->executeQuery($query);
到
$aws->executeQuery($query, false, false );
应该有帮助,因为因此只会返回 $res->execute()
的结果。
【讨论】:
是的,这就是问题所在。谢谢以上是关于SQLSTATE[HY000]:在 symfony 中创建表的一般错误的主要内容,如果未能解决你的问题,请参考以下文章
SQLSTATE[HY000]:在 symfony 中创建表的一般错误
Symfony 错误:[PDOException] SQLSTATE[HY000] [2002] 没有这样的文件或目录
Symfony 2.8(Wamp):[Doctrine\DBAL\Exception\ConnectionException] PDOException:SQLSTATE[HY000] [2002]
Symfony4 / Docker:SQLSTATE [HY000] [2002]连接被拒绝
Symfony 4 |教义 |驱动程序发生异常:SQLSTATE[HY000] [2002] Connection denied
symfony2 中的 MySQL (PDO) 出错:驱动程序中发生异常:SQLSTATE [HY000] [1049]