• 7129阅读
  • 9回复

[提问]qt mysql删除数据库指定行问题 [复制链接]

上一主题 下一主题
 

只看楼主 正序阅读 楼主  发表于: 2012-05-07
关键词: mysql删除操作
我的程序指定删除数据某行问题,一加where判断就执行不成功,不加where条件的话就把整个数据表给删除了。哪些去引号之类的都试过了,都不行,源码如下:
QSqlQuery query;
        QString sql=QString("DELETE FROM `useraddress` where `username`=`%1`;").arg(usr);
                        /*如果改成    QString sql=QString("DELETE FROM `useraddress` ;");就能执行,但是它就会把整个数据表的数据全部删除而已。usr是通过函数外传入的一个值,是有值的。之前insert 语句是可以执行的,已经插入数据库了,我是想实现在disconnect以后删除它的username 和uaddress。*/
        printf("%s",qPrintable(sql));
        if(!query.exec(sql)){
            puts("query.exec error");
            return false;
        }else{
            return true;
        }
急,在线等大神!不胜感激!!
usr是已经有值的了,运行效果如下:(insert into 这语句已经成功执行了的,disconnect是我自己程序里打印出来的信息来的,程序要实现的功能是当disconnect的时候删除该用户的信息而已)




只看该作者 9楼 发表于: 2012-05-07
问题已经解决,%1的单引号和username的单引号是不一样的。(可以认真看截图)感谢群内大神帮助。也给大家分享下,以后少走弯路!!
离线淳于半邪

只看该作者 8楼 发表于: 2012-05-07
回 7楼(键盘爱鼠标) 的帖子
2 3楼都说了的呀!还没发现啊!
username 不能加单引号
还有那个useraddress是表名还是表中的记录,要搞清楚
eg:
delete from 表名 where username='用户名' and useraddress='地址'

只看该作者 7楼 发表于: 2012-05-07
回 5楼(淳于半邪) 的帖子
大神,求指点一下下,哪里错了?help!!

只看该作者 6楼 发表于: 2012-05-07
回 3楼(zdmflies) 的帖子
我把那些引号去掉试过了,但是还是不行的!!大神求帮助!!
离线淳于半邪

只看该作者 5楼 发表于: 2012-05-07
错误很明显啊!

只看该作者 4楼 发表于: 2012-05-07
回 2楼(lejcey) 的帖子
我的错,我没说清楚题目,早上那个截图有点问题的,因为数据库已有相同的数据,所以插入数据库那个语句运行报错,插入数据库的那条sql语句是可以执行的,就是delete这句加上个where就死活报错而已!!我的错,大神再帮我看看
离线zdmflies

只看该作者 3楼 发表于: 2012-05-07
DELETE FROM useraddress  where  username =`%1`;
离线lejcey

只看该作者 2楼 发表于: 2012-05-07
语法错误啊,楼主,这不是QT的问题,只是你SQL语句不过关!请参考MYSQL的官方文档,这个有中文的!

插入:

INSERT INTO useraddress (username, address) VALUES ('yy', '192.168.1.105')
DELETE FROM useraddress WHERE username='yy'

只看该作者 1楼 发表于: 2012-05-07
快速回复
限100 字节
 
上一个 下一个