2015-12-08 76 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總是讓我回想起真正的價值,並且我自己讓它變得虛僞。