gpt4 book ai didi

php - 构建 mysqli 查询?

转载 作者:可可西里 更新时间:2023-11-01 07:35:49 24 4
gpt4 key购买 nike

如果我有查询 select users.user_id, users.fname, users.lname, bios.bio, groups.groupid from users LEFT JOIN bios on users.user_id = bios.userid 然后我想根据条件添加另一个表,然后在末尾添加一个 where 语句。问题是因为当我绑定(bind)参数时它说“变量数与准备语句中的变量数不匹配”。我将如何解决这个问题?干杯。示例:

    $info = "select users.user_id, users.fname, users.lname, bios.bio, groups.groupid from users LEFT JOIN bios on users.user_id = bios.userid";
$content = $members->prepare($info);
if ($_GET['where'] == 'requests') $info .= "LEFT JOIN requests on users.user_id = requests.receiver";
else if ($_GET['where'] == 'referrals') $info .= "LEFT JOIN referrals on users.user_id = referrals.receiver";
$info .= "where users.user_id = ?";
$content->bind_param('s', $_SESSION['token'][1]);
$content->execute();

最佳答案

您在准备 SQL 字符串后更改它。不要那样做。改为这样做:

$info = "select users.user_id, users.fname, users.lname, bios.bio, groups.groupid from users LEFT JOIN bios on users.user_id = bios.userid";
if ($_GET['where'] == 'requests') $info .= " LEFT JOIN requests on users.user_id = requests.receiver";
else if ($_GET['where'] == 'referrals') $info .= " LEFT JOIN referrals on users.user_id = requests.receiver";
$info .= " where users.user_id = ?";
$content = $members->prepare($info);
$content->bind_param('s', $_SESSION['token'][1]);
$content->execute();

编辑:此外,确保您的 SQL 片段在必要时用空格分隔; .= 运算符不会自动为您添加一个空格。

关于php - 构建 mysqli 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9221777/

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