问题标签 [sqlbindparameter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4273 浏览

c++ - C++ sqlite3 绑定参数

我只玩了几天的用于 C++ 的 sqlite3 库,但这让我非常沮丧。

我想定义一个参数化的 CREATE TABLE,然后将参数绑定到它。它看起来像这样:

这个想法是,在不同的文件(.cpp 到这个头文件)中,我可以将这些参数绑定到:

其中 _DB_FIELD_SIZE_NAME 也在别处定义。

我不想使用sprintf()with CREATE_SQLcontains%d而不是:NAME_LENand :OTHER_LEN,因为我可能会更改参数的顺序或添加新的参数,并且我想保持明确的绑定。

现在,对于问题:我的 prepare 不返回SQLITE_OK,但会导致sqlite3_stmt. 这是我所拥有的:

所以,我得到的错误是:

我究竟做错了什么?我确定数据库连接打开正常。

0 投票
2 回答
35657 浏览

php - 如何使用 bind_param 在 MySQLi 中使用 MySQL NOW() 函数插入记录?

我需要在 PHP 中使用绑定参数在 MySQLi PDO 中执行这个 mysql 查询:

我使用这样的脚本,但它没有正确插入 publish_date。

它将记录插入到这样的publish_date列中:0000-00-00 00:00:00

我该怎么做?提前致谢。

PS:日期列的类型是datatime.

0 投票
1 回答
381 浏览

php - PDO bindParam 不会绑定

我有以下准备好的声明,它不会绑定$u

它返回:

$getAccountInfo: "object(PDOStatement)#2 (1) { ["queryString"]=> string(109) "SELECT status, pass, fail_count, tel, roleFROM test. accounts哪里user=:用户;“}”

$accountInfo:“布尔(假)”

(我试过 bindValue 等)

没有错误消息/异常(但如果我提供正确的数据库连接信息,它会引发错误)

如果我将返回的 sql 复制/粘贴到命令行中并替换:user'jacob',它就可以正常工作。

编辑:原来问题是脚本使用的帐户没有表的权限accounts(即使它有select授权test.*)。我认为原因是因为accounts是在我授予该帐户选择权限之后创建的:/

0 投票
1 回答
2676 浏览

sql-server - SqlServer 错误 HY000:使用 varbinary(max) 字段中超过 400 KB 的对象调用 SQLPutData 时部分插入/更新


当我尝试在 varbinary(max) 列中保存大于 400KB 的对象时,我遇到了一个大问题,从 C++ 调用 ODBC。

这是我调用 SqlPrepare、SQLBindParameter、SQLExecute、SQLPutData(最后一个不同时间)的基本工作流程:

SqlPrepare
StatementHandle 0x019141f0
StatementText“更新 DT460 SET DI024543 = ?,DI024541 = ?,DI024542 =?哪里DI006397 =?和DI008098 =?”
文本长度 93

第一个参数(BLOB 字段)的绑定:
SQLBindParameter
StatementHandle 0x019141f0
ParameterNumber 1
InputOutputType 1
ValueType -2 (SQL_C_BINARY)
ParameterType -4 (SQL_LONGVARBINARY)
ColumnSize 427078
DecimalDigits 0
ParameterValPtr 1
BufferLength 4
StrLenOrIndPtr -427178 (27_LEN_8的结果)

SQLExecute
语句句柄 0x019141f0

尝试通过多次调用 SQLPutData 以 32K 的块保存 blob:
SQLPutData :
StatementHandle 0x019141f0
具有 32768 个字符的 std::vector 的 DataPtr 地址
StrLen_or_Ind 32768

在使用前 32KB 数据的第一个 SQLPutData 操作期间,我收到以下 SQL Server 错误:
[HY000][Microsoft][ODBC SQL Server Driver]Warning: Partial insert/update。文本或图像列的插入/更新未成功。
当我尝试保存大小超过 400KB 的对象时,总是会发生这种情况。保存小于 400KB 的内容就可以了。
我发现关键参数是 SQLBindParemter 的 ColumSize。SQLBindParameter 期间的参数 StrLenOrIndPtr 可以具有较低的值(如 32K),它仍然会导致相同的错误。
但是根据 SQL Server API,我不明白为什么只要我用小于 32KB 的数据块调用 SQLPutData 就会有问题。

有谁知道问题可能是什么?
任何帮助将不胜感激。

0 投票
1 回答
852 浏览

php - PDO bindparams exec() 或使用 execute() 获取受影响的行

我有一个关于 PDO::exec() 和 bindparams 的问题。

exec($sql) 返回受影响的行数。但是你可以像prepare->bindParams()->execute()一样将参数绑定到exec()?

如果答案是否定的,您可以通过 prepare->bindParams()->execute() 中的任何技巧获得受影响的行?(我理解执行只返回真/假)

感谢帮助。

0 投票
2 回答
4369 浏览

mysql - 用于 PDO MySQL 查询中 LIKE 的 GET 值的 bindParam

有什么方法可以转换

进入类似的东西

这样我就可以在查询中使用bindParam(":term", $term);而不是'%$term%'

我已经看过这些Using LIKE in bindParam for a MySQL PDO QueryMysql, PDO - Like statement not working using bindParam。但是他们没有为我的问题提供任何正确的答案。

0 投票
2 回答
306 浏览

php - 我可以使用参数化 SQL 动态选择数据库中的字段吗?

我有一个数据库表 USER_OPTIONS,其中包含应用程序中各种选项中的每一个的字段,它看起来有效如下:

然后我的应用程序想要触发一个 AJAX 请求来调整这个表。

通过 AJAX 发送的信息是一组已更改的数据库字段及其新值(JSON 格式),例如

然后我的计划是使用参数化的 SQL 查询,如下所示

然后遍历关联数组以获取彼此的一对$my_field_for_updating$my_new_field_valuefrom $my_new_settings

然而。

我随后在 php.net 手册中发现了以下内容

(“标记”是用于参数化 SQL 查询中“?”变量的术语)

笔记:

标记仅在 SQL 语句中的某些位置是合法的。例如,它们可以在 INSERT 语句的 VALUES() 列表中使用(以指定行的列值),或者在与 WHERE 子句中的列进行比较以指定比较值时。

但是,它们不允许用于标识符(例如表名或列名),在命名要由 SELECT 语句返回的列的选择列表中,或指定二元运算符(例如 = 等号)的两个操作数。后一个限制是必要的,因为不可能确定参数类型。不允许将标记与 NULL 进行比较?也为空。通常,参数仅在数据操作语言 (DML) 语句中合法,在数据定义语言 (DDL) 语句中不合法。

因此,这破坏了我提出的解决方案。

我的下一个想法是有一个 SQL 查询来更新数据库中的所有字段,但只包含新更新的字段值。但是我发现这需要一个神奇的“什么都不做”变量来分配给我没有数据的字段的“标记”。

但是,我不知道$magic_do_nothing_value实际可能是什么(并且发现很难用谷歌搜索)。我尝试的一切要么抛出错误,要么被解释为“错误”。

所以我的第一个问题是:MYSQL 数据库是否接受一个值作为“什么都不做”的信号?

假设没有并继续前进,我的下一个想法是将所有当前值从数据库中拖出给定的USER_ID,使用更改修改这些值$my_new_settings,然后使用所有字段相应地更新数据库。

然而,这似乎是很多不必要的工作,尤其是与我的第一个解决方案相比。

这导致我在这里要求一个更好的!

非常感谢您的任何想法,我真的很想听听他们的意见。这是在 PHP 5.2 和一个基本的 MySQL 5.0.92 数据库上运行的。

0 投票
1 回答
364 浏览

mysql - PDO - 如何在用户名=:user_id、绑定值的地方更新名字

我正在尝试运行此查询,但是,我不断收到错误“致命错误:未捕获的异常 'PDOException' 并带有消息'SQLSTATE [42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;请查看手册对应于您的 MySQL 服务器版本,以便在 /home/a7668955/public_html/uploadproc1.php:106 中的第 1 行的 ')' 附近使用正确的语法堆栈跟踪:#0 /home/a7668955/public_html/uploadproc1.php( 106): PDOStatement->execute() #1 {main} 在 /home/a7668955/public_html/uploadproc1.php 第 106 行抛出

我确定这与我编写 SQL 语句的方式有关,我不确定当 user_id 使用两次时如何绑定值?

谢谢你的帮助!(此查询使用旧的 mysql_* 成功运行)

0 投票
1 回答
107 浏览

php - 如何在php的prepare语句中绑定参数?

我想在准备语句中发送数组值,但它不起作用

我的代码是:

0 投票
1 回答
2355 浏览

php - Mysqli 绑定参数 - 变量数与参数数不匹配

我不明白为什么会出现错误:“变量数与准备好的语句中的参数数不匹配”。

我的代码如下所示: