代码如下:
//首先创建数据驱动
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
//基本的设置
db.setHostName("127.0.0.1");
db.setPort(3306);
db.setUserName("root");
db.setPassword("1234");
db.setDatabaseName("qt_db");
//打开数据库 建立连接
bool isok = db.open();
if(isok)
{
qDebug() << "success" ;
QString aa = "%o%";
//SELECT * FROM user WHERE username LIKE '%o%'
QString sql = "SELECT * FROM user WHERE username LIKE:match";
QSqlQuery query;
query.prepare(sql);
query.bindValue(":match", aa);
if(!query.exec(sql))
{
qDebug() << query.lastError().text();
}
while(query.next())
{
qDebug() << QString("Id: %1, Username: %2, Password: %3")
.arg(query.value("id").toInt())
.arg(query.value("username").toString())
.arg(query.value("password").toString());
}
return 0;
}else
{
qDebug() <<"fail " << db.lastError();
return -1;
}
当在QT中执行上面代码时,会报:
success
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':match' at line 1 QMYSQL: Unable to execute query"
各位看看,为什么会这样