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