Qt isOpen 方法假值 MySQL

Qt isOpen method false value MySQL

我有一个 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一直给我返回真值,我自己弄成假的