【问题标题】:Proper syntax? PHP - mysqli_real_escape_string and sanitize function [duplicate]正确的语法? PHP - mysqli_real_escape_string和清理功能[重复]
【发布时间】:2014-10-17 20:27:34
【问题描述】:

在我提问之前,我搜索并查看了很多问题。我确实在 Dagon 上看到了这个,但是它没有提到消毒功能。正如我所说,我不是 PHP 专家,我不知道这是否会对语法产生影响。抱歉重复了。

我不是 PHP 专家,甚至不是普通用户,但我正在尝试为客户端更正一些 PHP 代码。我没有编写此代码,我只是想解决错误。有人能指出我正确的方向吗?

错误代码 -

PHP Warning:  mysqli_real_escape_string() expects exactly 2 parameters, 1 given in /home5/tfgfouze/public_html/shop/shopping/index.php on line 62

PHP 代码 -

function sanitize($var){
    return mysqli_real_escape_string(str_replace("`","\`", $var));
}

【问题讨论】:

  • mysqli_real_escape_string() 除了要清理的字符串之外,还需要指向您的数据库的链接。但是,向您的客户建议重构此代码以使用 prepared statements 的好处
  • 在使用 MySQLi 时不要转义,使用准备好的语句/绑定变量会为您做到这一点

标签: php


【解决方案1】:

mysqli_real_escape_string 需要两个参数,如 PHP 文档和错误所述

第一个参数应该是携带数据库连接的变量
第二个参数应该是您要清理的字符串
请注意我所说的字符串,因为 mysqli_real_escape_string 仅适用于清理字符串。它不适用于清理整数。

此外,我在这里最大的建议是停止使用一般的清理功能并开始使用准备好的语句。

【讨论】:

    猜你喜欢
    • 2011-04-19
    • 2017-01-05
    • 1970-01-01
    • 2015-12-20
    • 2019-01-17
    • 1970-01-01
    • 2019-11-27
    • 2021-07-10
    • 1970-01-01
    相关资源
    最近更新 更多