2015-12-08 74 views
1

我有一个MySQL数据库,我在Workbench中创建。我可以使用PHP代码很容易连接到它:Qt isOpen方法false值MySQL

<?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驱动程序中的问题?或者还有别的东西? 将appriciate任何帮助或建议。

回答

0

应该有:

if(db.isOpen()) 

不:

if(!db.isOpen()) 

其实这是非常愚蠢的错误。 isOpen总是让我回想起真正的价值,并且我自己让它变得虚伪。