【发布时间】:2017-07-03 19:14:06
【问题描述】:
我正在使用 PHP,以及带有 PDO 的 MySQL。有时我需要准备一个语句,其中一个变量(占位符)在此查询中多次使用。
例子:
SELECT * FROM messages WHERE from_id = :user OR to_id = :user
但是,如果我尝试准备此语句,则会出现错误,因此我需要以如下方式执行此操作:
SELECT * FROM messages WHERE from_id = :user1 OR to_id = :user2
要调用这个语句,我需要一个这样的数组:
array('user1'=>$user_id, 'user2'=>$user_id);
对我来说这看起来很愚蠢!为什么 MySQL(PDO?)不允许我多次使用一个占位符并强迫我使用需要更多控制的额外变量?!
如果查询相对简单(就像我在上面发布的那样),这可以很容易地处理,但是现在我构建了一个查询,其中包含 5 次(!!!)使用单个变量。每次添加占位符时,我都需要在很多地方检查代码以使其正常。
是否有任何设置或调整可以绕过这个?
【问题讨论】:
标签: php mysql pdo placeholder