Php 在MYSQLi中结合“编制报表”;选择“中的位置”;
我在mysqli和准备好的声明方面遇到了一个小问题: 我想在sqli中准备和“IN”语句,但它不适合我-( 有人能帮我解释一下我做错了什么吗?我想这是因为预处理语句的工作方式,因此像一些魔术一样(strip,addslashed…)阻止了我的解决方案,所以我可能需要其他东西,但可以解决它。这是我的sql语句:Php 在MYSQLi中结合“编制报表”;选择“中的位置”;,php,mysqli,prepared-statement,Php,Mysqli,Prepared Statement,我在mysqli和准备好的声明方面遇到了一个小问题: 我想在sqli中准备和“IN”语句,但它不适合我-( 有人能帮我解释一下我做错了什么吗?我想这是因为预处理语句的工作方式,因此像一些魔术一样(strip,addslashed…)阻止了我的解决方案,所以我可能需要其他东西,但可以解决它。这是我的sql语句: $dbPrepare = $db->prepare( 'SELECT `name`, `image` FROM `sometable` WHERE `
$dbPrepare = $db->prepare(
'SELECT
`name`, `image`
FROM `sometable`
WHERE `number` IN (?)'
);
$dbPrepare->bind_param('s', $numbers);
这就是我实现“$数字”的方法:
“var_dump($numbers)”结果如下:字符串(5)“a”、“b”
($\u GET['numbers']像这样获取它的值:&numbers=a,b)
我知道,也许不是最好的解决方案,但实际上我想将一些数据传输(最终可能是$u POST)到一个“in”语句中,包括一个准备好的变量
供参考:这是有效的:
$dbPrepare = $db->prepare(
'SELECT
`name`, `image`
FROM `sometable`
WHERE `number` IN ("'.implode('","', explode(',', $_GET['numbers'])).'")'
);
所以我很确定这是因为准备好了变量
提前感谢!不幸的是,没有工作。我认为在“加入”之后,没有数组可寻址了(但在GET上爆炸后,也尝试了这个没有加入的解决方案)。此外,我还需要另一种方法来返回所有条目(因为它是一个动态参数[2][3]…)
Try this
$dbPrepare = $db->prepare(
'SELECT
`name`, `image`
FROM `sometable`
WHERE `number` IN (?)'
);
$dbPrepare->bind_param('s', $numbers[0],$numbers[1]);
Try this
$dbPrepare = $db->prepare(
'SELECT
`name`, `image`
FROM `sometable`
WHERE `number` IN (?)'
);
$dbPrepare->bind_param('s', $numbers[0],$numbers[1]);