问题标签 [bindparam]

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 投票
3 回答
20547 浏览

php - 绑定布尔值的bind_param问题

mysqli_stmt::bind_param在 PHP5 中使用绑定布尔值时遇到问题。

SQL 查询如下:

'read' 是一个 tinyint,0 或 1,因为我在使用 mysqli 时遇到了一些问题。所以我在 bind_param 中列出的类型是:

我也尝试过 'sdsb' 和 'sdss' 但似乎没有任何效果,而且我总是收到以下信息:

警告:mysqli_stmt::bind_param():变量数与准备语句中的参数数不匹配

当我删除语句中的读取字段时,一切正常。我已经没有这个想法了。当然 bind_param 与布尔值一起使用?

0 投票
7 回答
142996 浏览

php - bindParam 和 bindValue 有什么区别?

PDOStatement::bindParam()和 和有什么不一样PDOStatement::bindValue()

0 投票
7 回答
22432 浏览

php - mysql PDO如何绑定LIKE

在这个查询中

我正在尝试将变量'$partial%'与 PDO 绑定。不知道这%在最后是如何工作的。

可不可能是

:partial注定在哪里$partial="somet"

还是会

:partial注定在哪里$partial="somet%"

还是会完全不同?

0 投票
1 回答
1764 浏览

php - 为什么 bindValue 或 BindParam 不修改准备好的语句?

使用最新的 php 来创建一个向表用户添加行的函数。

当我执行 addUser 函数时,这是我看到在 mysql 日志文件上执行的查询:

如您所见,它没有将 :varname 替换为正确的值。我错过了什么?

我尝试了 bindValue 和 bindParam,但得到了相同的结果。

更新

即使我改变:username:password使用,?,?我 得到相同的结果。实际执行的查询仍然包含在其中,而不是实际变量。bindValue(1,$username)bindValue(2,$password)?,?

0 投票
2 回答
2281 浏览

php - PDO->bindParam、PDO->bindValue 和 PDO->closeCursor

到目前为止,我一直在使用PDO->bindParam手册,但在阅读手册时,我发现PDO->bindValue了我可以PDO->bindValue通过值PDO->bindParam传递的内容,而作为参考传递,这是唯一的区别吗?

再次阅读我发现的手册时:我PDO->closeCursor应该把它放在标记的地方吗?它是可选的/自动调用的吗?似乎只有某些司机需要它。在不需要/支持它的驱动程序上调用它会导致错误吗?MySQL怎么样?

0 投票
1 回答
10547 浏览

php - php,mysqli-stmt.bind-param]:类型定义字符串中的元素数与绑定变量数不匹配

当我运行脚本时,我收到错误:

警告:mysqli_stmt::bind_param() [mysqli-stmt.bind-param]:类型定义字符串中的元素数与第 205 行 C:\wamp\www\records.php 中的绑定变量数不匹配

警告:mysqli_stmt::execute() [mysqli-stmt.execute]: (HY000/2031): 没有为第 206 行 C:\wamp\www\records.php 中的准备好的语句中的参数提供数据

知道如何解决吗?我计算了 bind_param 中的参数,它们对我来说似乎很好......

0 投票
1 回答
7098 浏览

php - mysqli 准备好的语句,使用绑定参数插入 NULL

有谁知道是否可以使用 MYSQLI bind_param 将 NULL 插入列中。

我有一种情况,有时我想在bind_param. 像这样...

显然,这只是将 NULL 作为字符串写入列。我试过了null\0但它们不起作用。

我想知道是否有一些我可以使$column2相等的值会导致它提交和实际的空值。

否则,我将不得不动态构建类型和参数列表,并使用它call_user_func_array来创建我的绑定,这样如果它们为空,则不会写入列。我可以这样做,但它会导致很多繁琐的额外代码,所以我只是想知道是否可以避免这种情况。

0 投票
1 回答
72651 浏览

php - 如何为更新查询准备语句?

我有一个带有以下代码的 mysqli 查询:

但是,所有数据都是从 HTML 文档中提取的,因此为了避免错误,我想使用准备好的语句。我找到了 PHP 文档,bind_param()但没有 UPDATE 示例。

0 投票
2 回答
652 浏览

php - 使用mysqli防止sql注入,如何设置NULL或CURRENT_DATE?

mysqliphp 库中,在bind_param()方法一中将参数绑定到查询。 bind_param()的第一个参数是types一个字符串,其中每个字符代表数据类型传递,例如,'s' 表示字符串。

如何将 NULL 或 CURRENT_DATE 表示为参数?

例如,尝试将“CURRENT_DATE”作为字符串,但发布为“0000-00-00”。(据我所知,非法日期“0000-00-00”对于不使用 NULL 的人来说是 NULL 的 mysqlism,这显然是相当多的)。

使用参数,如何使用 NULL 和 CURRENT_DATE?


@Johan 指出 NULL确实有效。在测试中,这似乎是真的,但事实并非如此。发生的情况是,从第一个 NULL 参数开始,所有参数都设置为 NULL!

默认值与此无关。很多时候我希望在 UPDATE 中将列设置为 NULL 或 CURRENT_DATE - 而不是 INSERT - 所以默认值在事务中不起作用。

此外,编写触发器来弥补不足之处的想法mysqli是非常糟糕的编程 - 在我写过意大利面条触发器的日子里,我是一个可以说话的人。更新日志的触发器是一回事——像这样的触发器将是一个持续的维护噩梦,代码被正确维护的可能性很小。

0 投票
2 回答
2394 浏览

php - 使用 PDO 插入 NULL 而不是空字符串

我有一个表,其中包含一些可为空的字段,当用户在 HTML 表单字段中没有输入任何内容时,我想在该字段中插入 NULL,而不是空字符串(这很重要,因为我在这些表上的一些 SELECT 稍后使用条件,例如如 WHERE x 不为空)。

但是,此版本的 bindParam 代码将空字符串插入可空字段而不是 NULL。

我已经阅读了很多内容,并发现这是将 null 插入该字段的答案:

但这意味着我需要预先检查所有传递给可空字段的参数,以确定它们是否为空,如果是,则传递PDO::PARAM_NULL而不是PDO::PARAM_STR. 我当然可以这样做,但希望可能有一个设置,如果它遇到一个空字符串,它会告诉 PDO,而是插入 null。

我偶然发现了这个

但它没有任何效果,通过进一步的研究,我认为这只会影响出路时的记录,而不是进路时的记录。

除了预先检查变量之外的任何选项?