gpt4 book ai didi

php - PDO:将 MySQL 函数传递给 bindValue/bindParam

转载 作者:可可西里 更新时间:2023-11-01 06:31:50 29 4
gpt4 key购买 nike

是否可以使用 bindValue() 插入 MySQL 函数?我下面的代码只是输出为字符串 'NOW()' 而不是函数 NOW() (不带引号)。

$sthandler->bindValue(1, 'NOW()');

最佳答案

没有。查询参数仅替代单个常量值。例如,数字常量或文字字符串或日期。

任何其他内容——列名、表名、SQL 关键字、函数、表达式——在解析时都必须在 SQL 字符串中。


回复你的评论:

您应该明白,参数只是一种方便的方法,可以将额外的字符串插入到您的 SQL 中。 PREPARE 类似于 Java 或 C# 的编译阶段,而 EXECUTE 类似于运行编译后的代码。

准备时间是 RDBMS 进行语法检查和引用验证的时间。如果你命名一个不存在的表,或者调用一个不存在的函数,它一定会报错。

您不能将表名或函数调用作为参数传递,因为这样 RDBMS 将无法在准备时验证这些引用。您不应该能够使用查询参数来更改语句的语法,或引入无效的表或函数。

因此参数占位符必须是一个不可简化的语法元素,它永远不会是一个无效的引用,即一个单一的文字值——一个数字或一个字符串。

关于php - PDO:将 MySQL 函数传递给 bindValue/bindParam,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8704059/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com