phpmyadmin query vs mysql 搜索表单和特殊字符


phpmyadmin query vs mysql search form and special characters

在phpMyAdmin中搜索"Loral's Library",然后选择"创建PHP代码"时,我看到phpMyAdmin查询会自动插入转义字符:

$sql = "SELECT * FROM `programs` WHERE `progname` LIKE ''Loral''''s Library'' LIMIT 0, 30 ";

如何在 mysql 搜索表单中包含相同的函数?

我对"Loral's Library"这种形式的查询是这样的:

$query = "SELECT * FROM programs WHERE progname LIKE '$search' ORDER BY progname ASC";

该类型搜索对于带有 ' 字符的任何内容都会返回错误。在搜索表单中输入"Loral's Library",然后将其传递到搜索.php文件以执行查询。

$escapedVaue=mysqli_real_escape_string($link,$originalValue);

该函数正是这样做的。

mysqli::real_escape_string -- mysqli_real_escape_string — 转义字符串中的特殊字符以在 SQL 语句中使用,同时考虑连接的当前字符集

此函数用于创建可在 SQL 语句中使用的合法 SQL 字符串。给定的字符串被编码为转义的 SQL 字符串,同时考虑连接的当前字符集。

编码的字符为 NUL (ASCII 0)、'、''r、''、'、" 和 Control-Z。

mysqli_real_escape_string