php - 如何在 PHP 中用单引号(')内爆字符串?

标签 php

这个问题在这里已经有了答案:





Formatting a PHP array for an SQL "IN" clause

(7 个回答)


7年前关闭。




这是我的代码:

   $newMsg="chinu debasish bitto deba prince's";

    //$curTime=date('G');
    //if(($curTime >= 9) || ($curTime < 21)){
        $chkUname=explode(" ",$newMsg);
        echo "SELECT mobile_hash FROM ".CHAT_USER." WHERE username IN(".implode(",",$chkUname).")";
    //}

上面的代码我得到:
SELECT mobile_hash
FROM chat_users WHERE username IN(chinu,debasish,bitto,deba)

但我希望每个字符串都带有单引号,例如:
SELECT mobile_hash
FROM chat_users WHERE username IN('chinu','debasish','bitto','deba') 

编辑:这个问题不是重复的,请再次检查我的问题和Formatting a PHP array for an SQL “IN” clause

最佳答案

使用 构建格式化的查询字符串值implode .由于您的字符串中有撇号,因此您必须 escape 进行错误和 SQL 注入(inject)攻击的免费查询。

$imp = "'" . implode( "','", mysql_escape_string($chkUname) ) . "'";

echo "SELECT mobile_hash FROM ".CHAT_USER." WHERE username IN($imp)";

更新:

mysqldeprecated从 PHP 5.6 开始,所以你应该选择 mysqli_*PDO .在 mysqli , 字符串是这样转义的
mysqli_real_escape_string($con, $chkUname)

哪里$conconnection对象并创建一个连接对象:
$con = mysqli_connect("hoste", "user", "password", "db_name");

关于php - 如何在 PHP 中用单引号(')内爆字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25461289/

相关文章:

php - 使用 anchor 标记将值传递到下一页

php - 在 mysql 表中插入一行。它不起作用?

php - 拉维尔 5 : Sending Email

php - 如何处理 Laravel 中的迁移错误?

php - 对一个大的多维数组进行排序

javascript - 缩略图投资组合过滤器表现不正确

php - 在 JavaScript 中解析 jQuery 数据 (JSON)

php - 第二个 SELECT 语句的 SUM - PHP - MySQL

php - 使用PHP登录MySQL数据库?

php - 安装linux raspberry的mysql-server失败(没有剩余空间)