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

svmlkihl  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(334)

我正试图从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);

你能给我一个更好的建议吗?谢谢您。

v1uwarro

v1uwarro1#

这里有两个问题:
在查询中使用5时,没有绑定5个值;
您需要删除引号并将通配符放在绑定变量的位置:

$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 . '%'
 );

相关问题