问题标签 [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.
c++ - C++ sqlite3 绑定参数
我只玩了几天的用于 C++ 的 sqlite3 库,但这让我非常沮丧。
我想定义一个参数化的 CREATE TABLE,然后将参数绑定到它。它看起来像这样:
这个想法是,在不同的文件(.cpp 到这个头文件)中,我可以将这些参数绑定到:
其中 _DB_FIELD_SIZE_NAME 也在别处定义。
我不想使用sprintf()
with CREATE_SQL
contains%d
而不是:NAME_LEN
and :OTHER_LEN
,因为我可能会更改参数的顺序或添加新的参数,并且我想保持明确的绑定。
现在,对于问题:我的 prepare 不返回SQLITE_OK
,但会导致sqlite3_stmt
. 这是我所拥有的:
所以,我得到的错误是:
我究竟做错了什么?我确定数据库连接打开正常。
php - 如何使用 bind_param 在 MySQLi 中使用 MySQL NOW() 函数插入记录?
我需要在 PHP 中使用绑定参数在 MySQLi PDO 中执行这个 mysql 查询:
我使用这样的脚本,但它没有正确插入 publish_date。
它将记录插入到这样的publish_date
列中:0000-00-00 00:00:00
我该怎么做?提前致谢。
PS:日期列的类型是datatime
.
php - PDO bindParam 不会绑定
我有以下准备好的声明,它不会绑定$u
:
它返回:
$getAccountInfo: "object(PDOStatement)#2 (1) { ["queryString"]=> string(109) "SELECT
status
,pass
,fail_count
,tel
,role
FROMtest
.accounts
哪里user
=:用户;“}”$accountInfo:“布尔(假)”
(我试过 bindValue 等)
没有错误消息/异常(但如果我提供正确的数据库连接信息,它会引发错误)
如果我将返回的 sql 复制/粘贴到命令行中并替换:user
为'jacob'
,它就可以正常工作。
编辑:原来问题是脚本使用的帐户没有表的权限accounts
(即使它有select
授权test.*
)。我认为原因是因为accounts
是在我授予该帐户选择权限之后创建的:/
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 就会有问题。
有谁知道问题可能是什么?
任何帮助将不胜感激。
php - PDO bindparams exec() 或使用 execute() 获取受影响的行
我有一个关于 PDO::exec() 和 bindparams 的问题。
exec($sql) 返回受影响的行数。但是你可以像prepare->bindParams()->execute()一样将参数绑定到exec()?
如果答案是否定的,您可以通过 prepare->bindParams()->execute() 中的任何技巧获得受影响的行?(我理解执行只返回真/假)
感谢帮助。
mysql - 用于 PDO MySQL 查询中 LIKE 的 GET 值的 bindParam
有什么方法可以转换
进入类似的东西
这样我就可以在查询中使用bindParam(":term", $term);
而不是'%$term%'
?
我已经看过这些Using LIKE in bindParam for a MySQL PDO Query和 Mysql, PDO - Like statement not working using bindParam。但是他们没有为我的问题提供任何正确的答案。
php - 我可以使用参数化 SQL 动态选择数据库中的字段吗?
我有一个数据库表 USER_OPTIONS,其中包含应用程序中各种选项中的每一个的字段,它看起来有效如下:
然后我的应用程序想要触发一个 AJAX 请求来调整这个表。
通过 AJAX 发送的信息是一组已更改的数据库字段及其新值(JSON 格式),例如
然后我的计划是使用参数化的 SQL 查询,如下所示
然后遍历关联数组以获取彼此的一对$my_field_for_updating
和$my_new_field_value
from $my_new_settings
。
然而。
(“标记”是用于参数化 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 数据库上运行的。
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_* 成功运行)
php - 如何在php的prepare语句中绑定参数?
我想在准备语句中发送数组值,但它不起作用
我的代码是:
php - Mysqli 绑定参数 - 变量数与参数数不匹配
我不明白为什么会出现错误:“变量数与准备好的语句中的参数数不匹配”。
我的代码如下所示: