如何避免 sql 查询中的 '?



我使用的是MYSQL 5.5。我可以知道如何在SQL查询中避免'吗?下面是我的示例查询:

<?php
$mySelect1 = "'Ahli Majlis'";
$bracket_mySelect1 = "($mySelect1)";
SQL = "SELECT * FROM user where 1 and nama_gelaran in ".$bracket_mySelect1."";
?>

我在控制台日志数据中检查的错误结果是SELECT * FROM user where 1 and nama_gelaran in (&#39;Ahli Majlis&#39;)

实际上我想要的结果是SELECT * FROM user where 1 and nama_gelaran in ('Ahli Majlis')

我试过了,但不起作用:

SQL = SELECT * FROM user where 1 and nama_gelaran in ".html_entity_decode(htmlentities($bracket_mySelect1,ENT_QUOTES),ENT_QUOTES); .";

我不确定您是如何执行查询的,但最好使用PDO而不是mysql_函数。这也提高了安全性并防止mysql注入。

以下是如何连接和运行PDO查询的示例。我已经将您的IN更改为=,因为看起来您只传递了一个值。

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "dbUsername";
$passwd = "dbPassword";
$name = 'Ahli Majlis';
$pdo = new PDO($dsn, $user, $passwd);
$stm = $pdo->query("SELECT * FROM `user` WHERE nama_gelaran = :name");
$stm->bindParam('name', $name);
$user = $stm->fetch();
print_r($user);

&#39;不是来自MySQL,除非INSERTed。它确实来自某些PHP函数,如htmlentities。它是'

最新更新