【问题标题】:MySQL/PHP Concatenating condition operator (<= , >=) with string in WHERE clauseMySQL / PHP连接条件运算符(<=,>=)与WHERE子句中的字符串
【发布时间】:2015-06-12 10:47:29
【问题描述】:

这是我的第一篇文章,所以我会尽力说清楚。 这是我的问题:

假设你有一个包含 operator 的 var: 例如,$var = "&lt;="; 你很想这样做:

$query = "SELECT * FROM table WHERE".$attr." ".$var." ".$value;

(其中$value 是一个整数), 我可以这样做吗? 如是, 我在我的 PHP 脚本中尝试过同样的事情,但它不起作用! ($var = "=" 除外)虽然它确实在 phpmyadmin 中工作。 (我的代码有点长,但如果你愿意,我可以发布它)。 非常感谢任何帮助。

【问题讨论】:

  • 我不认为你可以。但即使你可以,我也会怀疑它是 best-practices,因为该值没有经过类型检查,可能会导致问题。
  • 感谢您的快速答复!你能提供任何替代方案吗?
  • 使用 switch 语句来执行相应的查询。
  • 啊,好的,谢谢! (我真是个白痴XD)

标签: php mysql operators concatenation where


【解决方案1】:

WHERE 和 $attr 之间没有空格,这样做可能会得到你想要的效果:

$query = "SELECT * FROM table WHERE ".$attr." ".$var." ".$value;

或者只是

$query = "SELECT * FROM table WHERE $attr  $var $value";

尝试将 $query 回显到浏览器,然后将其复制并粘贴到 phpmyadmin 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-19
    • 1970-01-01
    • 2013-08-20
    • 1970-01-01
    • 2016-07-19
    • 2010-09-08
    相关资源
    最近更新 更多