gpt4 book ai didi

php - 如果搜索词中有撇号,如何查询我的表?

转载 作者:行者123 更新时间:2023-11-29 01:19:39 26 4
gpt4 key购买 nike

如果名字中有撇号,我如何在我的表格中搜索名字?

如果我在搜索框中插入带有撇号的名称,如 Ender's Game,则会出现错误。

我已经尝试了 stackoverflow 上提供的解决方案,但我无法解决这个问题。

这是我的代码:

$string1  = $_GET['name'];
$quer = "SELECT * FROM info WHERE name = '$string1'";
$q = mysqli_query($conn, $quer);

如果 $_GET['name'] 中有撇号,则会显示错误。

我该如何解决这个问题?

最佳答案

该形式的代码容易受到 SQL injection 的攻击.使用 mysqli::prepare相反:

$string1  = $_GET['name'];

$quer = "SELECT * FROM info WHERE name = ?";
$stmt = $conn->prepare($quer);
$stmt->bind_param('s', $string1);
$stmt->execute();
$stmt->bind_result($result);
$stmt->fetch();
$stmt->close();

var_export($result);

如果您正在改编遗留的、不安全的代码,使用 mysqli_real_escape_string 可能会更快.这应该作为最后的手段保留,但如果您需要它,它就在那里,而且它比正则表达式更好。

关于php - 如果搜索词中有撇号,如何查询我的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50771960/

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