- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在使用 SQLite 驱动程序在 Windows 7 上使用 Qt 5.3.1(64 位)执行简单的参数化查询。当我使用 bindValue()
设置查询的单个参数的值时,我系统地遇到了可怕的“参数计数不匹配”错误。当我使用 addBindValue()
时一切正常。请注意,带有 bindValue()
的代码适用于 Qt 4.8.5(64 位)。
完整代码(main.cpp
):
#include <QtSql>
int main(int, char* [])
{
auto db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("db.sqlite");
db.open();
{
QSqlQuery query("CREATE TABLE IF NOT EXISTS hashes (filepath TEXT, modified INTEGER, hash TEXT)", db);
query.exec();
}
QSqlQuery query("SELECT modified FROM hashes WHERE filepath = :fp", db);
query.bindValue(":fp", "test.jpg");
if (!query.exec())
qDebug() << query.lastError();
db.close();
return 0;
}
QtCreator 工程文件(qtsqltest.pro
):
QT += core sql
TARGET = qtsqltest
TEMPLATE = app
SOURCES += main.cpp
我机器上的程序输出:
QSqlError("", "Parameter count mismatch", "")
有什么想法吗?
最佳答案
我刚刚发现我的问题与 this one 重复那corresponding answer是正确的。
事实证明,根据documentation,传递给QSqlQuery
构造函数的查询字符串会立即执行。 .
目前尚不清楚为什么这样的查询在 Qt 4.8.5 上运行良好,或者为什么在使用位置参数(使用 ?
占位符)时它们在 Qt 5.3.1 上运行良好,而在命名参数(使用 :
占位符)。
关于Qt 5 与 SQLite : bindValue() results in "Parameter count mismatch" error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24684550/
我在数据库中有一个文本数据类型,想要输入 true 或 false 值。如果我使用带有 BindParam 的 Mysqli 或 PDO 可以正常工作,它会添加 1 或 0,但是当我尝试使用 Bind
这个问题在这里已经有了答案: Why does this PDO statement silently fail? (2 个答案) 关闭 21 天前。 我对 PDO 很陌生。 我尝试制作一个登录页面
我的 DELETE 查询方法有一个“小”问题。这段代码没有给出任何错误,所以它应该可以工作。但是数据库内部没有任何变化,我想删除的行仍然存在。 主要问题可能出在这里: $query = $this->
我发现一些关于bindvalue的问题,但找不到解决方案。这是我的代码,如果输入像“abc@aaamail.com”这样的电子邮件,它会很好用,但我的问题是当用户输入像“abc.def@aaamail
我正在尝试使用 PHP、SQL、PDO 创建一个基本评级函数,它将用户给出的评级值添加到“recipe_ rating”字段,然后将 1 添加到“recipe_ ratingcounter”字段。 但
我有这样的问题 select Count(1) as Count, pt.Name as TypeName, pt.ID as TypeID, pc.ID as CatID, o.Name as Of
有些奇怪的事情正在发生,因为 PDO 应该逃避任何 XSS 这是我的 PDO 类 dbh != null) return $this->dbh; $dsn =
我是 PHP 的 PDO 的新手,我的数据库类的一个函数有点问题: function set($query, $args = array()) { try { $query = $this
我对 php 中的 bind* 函数有疑问 我的代码是: $this->db_conn = new PDO("mysql:host=$this->db_host;dbname=$this->db_na
当我使用 bindValue 准备语句时,如果占位符被单引号括起来,则它不会被替换。这是有问题的,因为在 SQL 中字符串被单引号包围以避免关键字冲突。请参阅我的附件,其中包含一次插入单引号和一次不插
PDOStatement::bindParam — 绑定一个参数到指定的变量名。 绑定一个PHP变量到用作预处理的SQL语句中的对应命名占位符或问号占位符。 不同于 PDOStatement::b
我正在使用 PHP 和 PDO for PostgreSQL。当我尝试将特定值绑定(bind)到查询中时,出现了奇怪的行为。我有以下内容: $value[0][$i] = "'%{$filterval
我在各种网站上查看了一个多小时,但我无法解决我的问题。 所以这是有效的代码: $animes = array(); $q = $this->_db->query('SELECT id, nom
我知道这个问题已经被问过 1000 次了,但出于某种原因我继续用头撞墙.. 这个有效: $sql = 'SELECT a.eventCode, a.eventTime, a.teamCode, a.p
PDOStatement::bindParam() 之间有什么区别?和 PDOStatement::bindValue() ? 最佳答案 来自 the manual entry for PDOStat
这个问题在这里已经有了答案: Use bound parameter multiple times (5 个答案) 关闭 3 年前。 我对 ODBC 的 PDO 语句有疑问。 我在 Windows
我在 pdo 方面遇到了一个大问题,似乎没有人能够帮助我 - 所以我决定问你们:-) try { $links = $database->prepare("SELECT * FROM aTab
这个问题已经有答案了: PHP - Using PDO with IN clause array (9 个回答) 已关闭 5 年前。 我的这个查询没有返回任何内容。它不会抛出任何错误。在该网站上找不到
我正在编写一个类,它以编程方式创建一个给定特定列名的表。我正在使用 PDO 准备好的语句,这似乎导致了一些问题。 基本流程如下: // create a query string to be sent
我吓坏了,不知道出了什么问题。我对 PDO 还很陌生,但是除了作为字符串发送的 bool 值之外,所有内容都可以在我的代码中运行。 我的代码(简化): $sql = 'SELECT * FROM pa
我是一名优秀的程序员,十分优秀!