我面临着与mysqli和准备好的陈述有点问题:
我想准备和" IN"在sqli声明,但它不适合我! : - (
有人可以帮我解释一下我做错了什么吗?我认为这是因为预备语句的工作方式,因此像一些魔术(条带,添加......)正在阻止我的解决方案,所以也许我需要别的东西,但可以搞清楚。这是我的sql语句:
$dbPrepare = $db->prepare(
'SELECT
`name`, `image`
FROM `sometable`
WHERE `number` IN (?)'
);
$dbPrepare->bind_param('s', $numbers);
这是我实现" $ numbers":
的方法$numbers = implode('","', explode(',', $_GET['numbers']));
" var_dump($ numbers)"结果如下:string(5)" a"," b" ($ _GET ['数字']得到它的价值如下:& numbers = a,b)
我知道,也许不是最好的解决方案,但实际上我想将一些数据转移到(" IN"声明包括准备好的变量。
供参考:这是有效的:
$dbPrepare = $db->prepare(
'SELECT
`name`, `image`
FROM `sometable`
WHERE `number` IN ("'.implode('","', explode(',', $_GET['numbers'])).'")'
);
所以我很确定这是因为准备好的变量。
提前致谢!
答案 0 :(得分:0)
Try this
$dbPrepare = $db->prepare(
'SELECT
`name`, `image`
FROM `sometable`
WHERE `number` IN (?)'
);
$dbPrepare->bind_param('s', $numbers[0],$numbers[1]);