【问题标题】:Storing comments & special characters or RTF in MySQL在 MySQL 中存储注释和特殊字符或 RTF
【发布时间】:2016-04-11 03:26:31
【问题描述】:

我有一个比较简单的问题。

我正在设计一个通过 PHP --> mysql 运行的评论系统,当我提交带有特殊字符的评论时,即。一个引号 [']...它搞砸了查询。

显然我必须剥离这些以防止注入和诸如此类的东西,但是在提交引号和其他特殊字符(如换行符)到数据库中然后对其进行解析以使其按原样显示之间来回解析的最简单方法是什么原来写的? IE。我可以把一段放在几行下面..

.

在这里。数据库正在存储这些额外的换行符。是否有内置的 PHP 解析器或者我必须以某种方式编写一个?

【问题讨论】:

    标签: php mysql special-characters


    【解决方案1】:

    PHP 扩展 PDO 做得很好,我重新制作了 PDO 并使其使用起来更加简单,因为它可能有点复杂,但是可以找到教程,我在一天左右的时间里就学会了。

    如果您想开始使用 PDO,您需要像这样进行连接:

    $handler = new PDO("mysql:host=HOST;dbname=DATABASE_NAME", DATABASE_USERNAME, DATABASE_PASSWORD);
    

    使用它,HOST可以是例子localhost,DATABASE_NAME很明显,用户名和密码我相信你可以弄清楚!

    如果您想使用来自 $_GET[''] 数组的查询,您可以执行以下操作:

    $query = $handler->prepare("INSERT INTO users (username, password) VALUES (:user, :pass);
    $query->execute(array( 
      ':user' => $_GET['username'],
      ':pass' => $_GET['password']
    ));
    

    这里发生的是用户名和密码被安全地提供给查询,然后在$query->execute语句中执行;无论网址中是否有'"

    如果您想了解有关 PDO 库的更多信息,请参阅 here

    【讨论】:

    • 太棒了,我去看看。我一直对学习 PDO 犹豫不决,但似乎每个人都认为/说它比 mysqli 更好。
    • 它比 MySQLi 更好,老实说,我不明白为什么有人还在学习它,因为它让一切变得更容易,YouTube 上有很好的教程,而且非常简单。希望我能帮到@Vranvs
    • 注意 - MySQLi 有一些清理方法,但不确定它们是什么,您可以查找它们。
    猜你喜欢
    • 2023-03-26
    • 1970-01-01
    • 2015-06-14
    • 1970-01-01
    • 2017-12-26
    • 1970-01-01
    • 2011-02-10
    • 2020-08-10
    • 1970-01-01
    相关资源
    最近更新 更多