gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 20:17:58 30 4
gpt4 key购买 nike

我有一个像这样的 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的prepare的方法是这样的:

$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();
}
?>

浏览器:

enter image description here

关于php - 如何使用 php 转义字符串中的单引号(撇号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39638139/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com