如何使用php在字符串中转义单引号(撇号)

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了如何使用php在字符串中转义单引号(撇号)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这样的SQL查询: –

$stmt = $pdo->PRepare(
   "SELECT * From `products_keywords` WHERE `product_tyPE` = '" . $product_type . "' ");

我不知道$product_type变量中的值是多少.但是现在,我在$product_type变量中得到Men’s Shirt,这导致我的SQL查询中出现语法错误.我确定这个错误是由于Men’s Shirt值的单引号引起的.我如何根据我的查询来逃避这个值?以及如何检查我的$product_type变量中是否有单引号然后根据我的查询转义它.提前致谢.

解决方法

答案是你不需要.使用PDO准备的正确方法是这样的:

$stmt = $pdo->prepare(
   "SELECT * From `products_keywords` WHERE `product_type` = ?");

这是使用预备声明的重点.然后你bind的参数如下:

$stmt->bindParam(1,$product_type)

证明,

架构:

create table `products_keywords`
(   `id` int not null,`products_keywords` vArchar(1000) not null,`product_type` VARchar(100) not null
);
insert `products_keywords` (`id`,`products_keywords`,`product_type`) values  
(1,'zoom lawn cut mower',"Lawn Mower"),(2,'stylish torso Polo','Men\'s Shirt');

查看数据:

select * from `products_keywords`;
+----+---------------------+--------------+
| id | products_keywords   | product_type |
+----+---------------------+--------------+
|  1 | zoom lawn cut mower | Lawn Mower   |
|  2 | stylish torso Polo  | Men's Shirt  |
+----+---------------------+--------------+

PHP

<?PHP
    // turn on error reporting,or wonder why nothing is happening at times
    error_reporting(E_ALL);
    ini_set("display_errors",1);    

    $servername="localhost";
    $dbname="so_gibberish";
    $username="nate123";
    $password="openSesame1";

    try {
        $pdo = new PDO("MysqL:host=$servername;dbname=$dbname",$username,$password);
        $pdo->setattribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
        $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);

        $product_type="Men's Shirt";
        $stmt = $pdo->prepare("SELECT * FROM `products_keywords` WHERE `product_type` = ?");
        $stmt->bindParam(1,$product_type);
        $stmt->execute();
        while($row = $stmt->fetch()) {
            echo $row['id'].",".$row['products_keywords'].",".$row['product_type']."<br/>";
        }
    } catch (PDOException $e) {
        echo 'pdo problemo: ' . $e->getMessage();   // dev not production code
        exIT();
    }
?>

浏览器:

如何使用php在字符串中转义单引号(撇号)

脚本宝典总结

以上是脚本宝典为你收集整理的如何使用php在字符串中转义单引号(撇号)全部内容,希望文章能够帮你解决如何使用php在字符串中转义单引号(撇号)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。