mysql pdo 尝试将列设置为 uuid() 的值 returns "Invalid parameter number: number of bound variables does not match number of tokens"

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在插入时执行函数。

这个returns我异常:

SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens

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

谢谢

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

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

因此,只要您的 SQL 查询中有 四个 个占位符,您就必须准确绑定 四个 个变量到您的 PDO 声明。

虽然任何内部函数您都不必 "pass" 在任何地方或绑定它。它已经存在,并且与任何 PDO 代码无关。