gpt4 book ai didi

php - 带 % 通配符的 Mysqli 准备语句

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

我正在尝试构建一个动态准备好的语句,以便我可以重用代码。当我在准备状态下使用 %?% 时,我遇到了问题,因为它使用了 LIKE。我的代码如下:

$where = " First_Name LIKE '%?%' ";
$vals = array('Mike');
$type = 's';

$dbd = mysqli_stmt_init($dbconnection);
if (mysqli_stmt_prepare($dbd, "SELECT * FROM Contacts WHERE $where" )) {
mysqli_stmt_bind_param($dbd, $type, ...$vals);
if (!mysqli_stmt_execute($dbd)) {
echo "Execute Error: " . mysqli_error($dbconnection);
} else {
//do nothing
}
} else {
echo "Prep Error: " . mysqli_error($dbconnection);
}
mysqli_stmt_get_result($dbd);

所以当我使用“First_Name = ?”时它工作正常,所以我认为我的问题在于“%?%”。我搜索了决议,但找不到与我的动态准备好的声明相关的任何内容。感谢您的帮助。

最佳答案

您需要绑定(bind)完整的值,而不仅仅是其中的一部分。这意味着要做:

$where = "First_Name LIKE ?"

然后绑定(bind):

$vals = array('%Mike%');

关于php - 带 % 通配符的 Mysqli 准备语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44571448/

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