gpt4 book ai didi

php - 在 php mysql 查询中添加更多搜索变量时遇到问题

转载 作者:行者123 更新时间:2023-11-30 00:50:42 26 4
gpt4 key购买 nike

我正在尝试添加到 mysql 搜索数组 $.实际脚本运行良好,如下所示:

$sql = 'SELECT item, IdPhotos FROM purchases WHERE username = ? AND sname = ?';
$params = array( $login, $sname );

if ( isset( $_GET['q'] ) ) {
$sql .= " AND cusername LIKE ?";
$params []= '%'.$_GET['q'].'%';
}

但是,我正在尝试添加两个搜索变量。但是,我的脚本告诉我第 14 行存在未知错误。我做错了什么?

   ...
if ( isset( $_GET['q'] ) ) {
$sql .= " AND (cusername LIKE ? OR myname LIKE ? OR item LIKE ?)";
//line 14 below
$params []= '%'.$_GET['q'].'%';
}

最佳答案

您添加的参数数量与添加参数符号的数量不同。

这是你的修复,尽管它很草率。在这种情况下,您应该转换为命名参数。

if ( isset( $_GET['q'] ) ) {
$sql .= " AND (cusername LIKE ? OR myname LIKE ? OR item LIKE ?)";

$params[] = '%'.$_GET['q'].'%';
$params[] = '%'.$_GET['q'].'%';
$params[] = '%'.$_GET['q'].'%';
}

使用命名参数将如下所示:

if ( isset( $_GET['q'] ) ) {
$sql .= " AND (cusername LIKE :name OR myname LIKE :name OR item LIKE :name)";

$params[':name'] = '%'.$_GET['q'].'%';
}

这样它将自动替换指定参数的每个实例。

关于php - 在 php mysql 查询中添加更多搜索变量时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21004193/

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