我正在尝试创建一个忘记密码系统,因此我正在使用该NEWID()功能创建一个随机代码以发送到用户的电子邮件。我正在使用准备好的语句来防止 SQL 注入,但这仍然不起作用:$sql = mysqli_prepare($conn, "INSERT INTO verifyEmail (username, code) VALUES (?, NEWID())");mysqli_stmt_bind_param($sql, "s", $user);mysqli_stmt_execute($sql);我在第二行收到警告,第一个参数不能是布尔值。(因此,SQL 代码中存在语法错误)。我知道NEWID()函数是问题所在,因为删除它可以修复警告。在准备好的语句中不起作用NEWID()?如果是这样,我应该怎么做呢?此外,我还需要运行一条SELECT语句来获取NEWID()函数返回的值。我这样做是不是错了?
1 回答
侃侃无极
TA贡献2051条经验 获得超10个赞
NEWID()
是一个 SQL Server 函数,在 MySQL 中不存在。等价于UUID()
:
$sql = mysqli_prepare($conn, "INSERT INTO verifyEmail (username, code) VALUES (?, UUID())");
mysqli_stmt_bind_param($sql, "s", $user);
mysqli_stmt_execute($sql);
如文档中所述,在 aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee 中为UUID()您提供了一个由五个十六进制数字组成的 utf8 字符串。
- 1 回答
- 0 关注
- 229 浏览
添加回答
举报
0/150
提交
取消