【问题标题】:mysql_real_escape_string not work in php 5.4.44mysql_real_escape_string 在 php 5.4.44 中不起作用
【发布时间】:2015-10-30 06:20:13
【问题描述】:

我在我的网站上运行 PHP 版本 5.4.44 并尝试使用 mysql_real_escape_string 但它没有给我任何东西。mysql_real_escape_string 在我的计算机上的 localhost 中工作得很好。示例代码

 <?php
    echo 'What is Your Name='.mysql_real_escape_string("my name is ");
    ?> 

输出

你叫什么名字=

【问题讨论】:

    标签: php mysql mysql-real-escape-string php-5.4


    【解决方案1】:

    mysql_real_escape_string

    mysql_real_escape_string — 转义字符串中的特殊字符 在 SQL 语句中使用

    在向 MySQL 发送查询之前,必须始终(除了少数例外)使用此函数来确保数据安全。

    所以你需要在使用mysql_real_escape_string之前创建一个数据库连接

    $link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
        OR die(mysql_error());
    
       echo 'What is Your Name='.mysql_real_escape_string("my name is ");
    

    输出

    你叫什么名字=我叫什么

    更新

    根据我们的讨论,您正在使用 mysqli,因此您在代码中混合了 mysql 和 mysqli

    mysqli_real_escape_string($con,("my name is 'kk/'");//pass first parameter your database connection
    

    【讨论】:

    • 不工作 @Saty include("define.php"); $con=mysqli_connect(DB_SERVER,DB_USER,DB_PASS,DB_NAME); if (mysqli_connect_errno()){ echo "连接 MySQL 失败:" . mysqli_connect_error(); } else{ echo '你叫什么名字='.mysql_real_escape_string("我的名字是'kk/'"); }
    • 在您的代码中混合使用 mysql 和 mysqli。两者都是不同的。使用 mysql 或 mysqli
    • 我使用 mysqli 进行连接并尝试 mysql_real_escape_string 和 mysqli_real_escape_string 都不起作用@Saty
    • mysqli_real_escape_string($con,("my name is 'kk/'"); 传递第一个参数你的 $con 变量
    • echo 'What is Your Name='.mysql_real_escape_string("my name is "); - 这行没有意义。
    【解决方案2】:

    你的数据库连接成功了吗?您是否看到任何错误或警告?

    如果它在本地主机上工作正常,请检查用于连接到服务器的连接字符串。

    此外,函数 mysql_real_escape_string 在 PHP 5.5.0 中已弃用。你可能想看看mysqli_real_escape_string.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多