【发布时间】:2013-09-03 19:50:32
【问题描述】:
我开始在 php 中对我的 sql 查询使用准备好的语句,从这个开始我提出了一个问题。
我有一个函数可以在登录时从表中获取用户 ID。我希望用户能够使用他们的用户名或电子邮件地址进行登录。
所以我的sql语句是:
SELECT * FROM `login` WHERE `username`=?或者 `emailAddress`=?
现在,在这个查询中,username 和 emailAddress 基本上是相同的,因为它可以是或。
所以当绑定我的语句时,我是否绑定了我的变量两次:
bind_param('ss', $user, $user);
所以username 和emailAddress 的值需要相同。本质上,我希望 $user 成为两个占位符的值。
我的问题是:我这样做是否正确? 有没有更有效的方法?
【问题讨论】:
-
你试过了吗?这行得通吗?
-
您的问题到底是什么?你想知道它是否有效吗?那么请尝试一下,如果没有,请使用任何错误消息更新您的问题。
-
@victorantunes 我想我应该问的是:有没有更好的方法来做到这一点?这是正确的方法吗?
-
我 +1 了,因为我有一个 similar 问题,只是我没有从代码中填充绑定参数(我同意,只包含它是微不足道的两次或更多),但在笨重的 GUI 中需要创建额外的“插槽”,然后为查询中的每个绑定填充。因此,能够将每个绑定引用为 ?1、?2、?3,然后在多个位置使用 ?2,实际上可以节省时间。
标签: php sql mysqli prepared-statement