mysql-pdo试图将列设置为uuid()的值;无效的参数编号:绑定变量的数量与令牌的数量不匹配;


mysql pdo trying to set column to value of uuid() returns "Invalid parameter number: number of bound variables does not match number of tokens"

我已经为插入构建了mysql PDO语句,如下所示:

insert into user (id_user, email, password, name, uuid) values (:id_user, :email, :password, :name, uuid() )

注意最后一个uuid()没有冒号,因为我需要Mysql在插入时执行函数

这将返回异常

SQLSTATE[HY093]:无效的参数编号:绑定变量的数量与令牌的数量不匹配

如何使用PDO传递mysql内部函数"uuid()"

感谢

占位符不是INSERT查询语法的一部分,正如您可能认为的那样。

当使用PDO准备的语句时,的SQL语法保持完全相同While占位符只能用于表示外部数据。

因此,只要您的SQL查询中有四个占位符,您就必须将

而任何内部函数都不需要"传递"到任何地方或绑定它。它已经就位,与任何PDO代码都没有关系。