Php 在MYSQLi中结合“编制报表”;选择“中的位置”;

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 `

我在mysqli和准备好的声明方面遇到了一个小问题:

我想在sqli中准备和“IN”语句,但它不适合我-(

有人能帮我解释一下我做错了什么吗?我想这是因为预处理语句的工作方式,因此像一些魔术一样(strip,addslashed…)阻止了我的解决方案,所以我可能需要其他东西,但可以解决它。这是我的sql语句:

$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]);