mysql - Qt isOpen 方法 false 值 MySQL

标签 mysql qt connection

我有一个 MySQL 数据库,是在 Workbench 中创建的。我可以使用 PHP 代码轻松连接到它:

<?php 
    $host = "localhost";
    $port = 3306;
    $socket = "";
    $user = "hate";
    $password = "88005553535";
    $dbname = "galleries_db";
    $con = new mysqli($host, $user, $password, $dbname, $port, $socket)
        or die ('Could not connect to the database server' . mysqli_connect_error());
    echo "DONE!";
?>

但是当我尝试像这样使用 Qt 连接到我的数据库时:

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setPort(3306);
db.setDatabaseName("galleries_db");
db.setUserName("hate");
db.setPassword("88005553535");
db.open();
if(!db.isOpen()) {
    ui->label->setText("-");
    qDebug() << "Error: "<<  db.lastError() << " " << db.lastError().text();
}
else
    ui->label->setText("+");

isOpen 方法总是返回错误值。在流中我有:

Error: QSqlError("", "", "") " "

可能是 Qt 的 MySQL 驱动程序有问题?或者还有别的东西? 会感谢任何帮助或建议。

最佳答案

应该有:

if(db.isOpen())

不是:

if(!db.isOpen())

实际上这是一个非常愚蠢的错误。 isOpen 总是返回真值,而我自己将其设为假。

关于mysql - Qt isOpen 方法 false 值 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34162811/

相关文章:

c++ - QVector::append() 显式复制的原因是什么?

c++ - 奇怪的 QT Unsigned Int 错误

android - 如何以编程方式将文件夹从服务器下载到手机?

c# - 如何在 C# 中创建与 BouncyCaSTLe 的 TLS 连接?

mysql - Mysql中的SQL join ON不相等

php - 使用 mysqli_connect() 连接到 Cloud SQL 数据库

php - 原则ORM未填充多对多关系集合

MYSQL基于CURRENT_TIME的简单IF语句

c++ - 从 Windows 中的 waf 构建 Qt 程序中删除控制台

delphi - 检查连接是否关闭!