gpt4 book ai didi

php - 如何在多个列中使用相同的变量编写 mysql 准备语句?

转载 作者:行者123 更新时间:2023-11-29 05:52:05 25 4
gpt4 key购买 nike

我正在尝试从 MySql 中的英语词典中选择一个词。意思版本保存在不同的列中。所以我正在尝试编写我准备好的声明如下。但这给了我错误,到目前为止我还没有找到更好的解决方案。我的代码如下:

$sql = "SELECT * FROM `dic1` 
WHERE
eng LIKE '%?%' OR
eng2 LIKE '%?%' OR
eng3 LIKE '%?%' OR
eng4 LIKE '%?%' OR
eng5 LIKE '%?%'";

$stmt = mysqli_prepare($conn, $sql);
mysqli_stmt_bind_param($stmt, "sssss", $searchWord);

你能建议我一个更好的方法吗?谢谢。

最佳答案

这里有两个问题:

  1. 您在查询中使用 5 个值时未绑定(bind) 5 个值;
  2. 您需要删除引号并将通配符放在绑定(bind)变量的位置:

    $sql = "SELECT * FROM `dic1` 
    WHERE
    eng LIKE ? OR
    eng2 LIKE ? OR
    eng3 LIKE ? OR
    eng4 LIKE ? OR
    eng5 LIKE ?";

    $stmt = mysqli_prepare($conn, $sql);
    mysqli_stmt_bind_param(
    $stmt,
    "sssss",
    '%' . $searchWord . '%',
    '%' . $searchWord . '%',
    '%' . $searchWord . '%',
    '%' . $searchWord . '%',
    '%' . $searchWord . '%'
    );

关于php - 如何在多个列中使用相同的变量编写 mysql 准备语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53104753/

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