为了账号安全,请及时绑定邮箱和手机立即绑定

NEWID 函数导致 MYSQL 中准备好的语句出错

NEWID 函数导致 MYSQL 中准备好的语句出错

PHP
POPMUISE 2023-03-04 17:26:04
我正在尝试创建一个忘记密码系统,因此我正在使用该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 字符串。


查看完整回答
反对 回复 2023-03-04
  • 1 回答
  • 0 关注
  • 229 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信