【问题标题】:How to pass & symbol in MySQL query?如何在 MySQL 查询中传递 & 符号?
【发布时间】:2015-06-20 11:49:58
【问题描述】:

有没有办法在 PHP 的 MySQl 查询中传递 & 符号?
我需要根据类别名称从数据库中选择值,但类别名称可能包含 & 符号

示例:CATEGORY_TITLE=FRUITS & VEGETABLES

【问题讨论】:

  • 是的,这是可能的。 & 在 MySQL 的字符串文字中没有特殊含义。您的问题很可能是通过 http 传输和 html 编码,而不是 MySQL 部分,
  • @VolkerK 谢谢。能举个例子吗?

标签: php mysql


【解决方案1】:

我怀疑您在传输变量时遇到问题(由某些 javascript 代码使用)。如果是这样,那么请确保您在查询字符串中传递的参数之前使用了encodeURIComponent 方法。

这是因为& 具有特殊含义(实际上它是一个分隔符)。

MySQL 接受& 作为字符串没有任何问题。

【讨论】:

    【解决方案2】:

    有很多方法可以做到这一点。

    在将数据保存到数据库之前,我使用:
    htmlentities($_POST['CATEGORY_TITLE'])
    在检索时我使用:
    html_entity_decode($result['CATEGORY_TITLE'])

    【讨论】:

    • -1。使用proper SQL escaping 而不是强制将 HTML 实体放入数据库。
    • @helmbert 我刚刚向他建议了一种方法。我不是强迫他这样做!!
    • @helmbert 真的很粗鲁。你们将暗示性方法标记为-ve。我只是在暗示一个逻辑。
    • @helmbert 如果您有更好的解决方案,如果您能与我们分享,那就太好了。
    • @helmbert 一旦他使用 mysql_escape_string 在保存之前删除“&”,他将如何在从数据库检索的结果中获取“&”?
    猜你喜欢
    • 1970-01-01
    • 2018-02-17
    • 2012-07-03
    • 2012-07-13
    • 1970-01-01
    • 2020-11-29
    • 2013-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多