gpt4 book ai didi

php - 带有位置占位符的 MySQL SELECT IN 仅根据字符串中的第一个值进行选择/过滤

转载 作者:行者123 更新时间:2023-11-30 01:32:34 30 4
gpt4 key购买 nike

想要选择列值为11或12或23的MySQL行。尝试使用这样的代码

$query_select_all = 'SELECT * FROM 2_1_journal WHERE CAST(EntryId AS UNSIGNED) IN (?)';
$sql = $db->prepare($query_select_all);
$data1[] = '11, 12, 23';
$sql->execute($data1);

但代码仅选择列值为 11 的行($data1[] = '11, 12, 23'; 中的第一个值)

尝试不使用并根据需要工作。

这里是没有 ?(位置占位符)的语句

$query_select_all = 'SELECT * FROM 2_1_journal WHERE CAST(EntryId AS UNSIGNED) IN (11, 12, 23)';
$sql->execute();

该语句按预期工作(选择 EntryId 为 11 或 EntryId 为 12 或 EntryId 为 23 的行。

第一个代码(带有)中的错误在哪里?

最佳答案

基于https://stackoverflow.com/a/15991146/285587

$query_select_all = 'SELECT * FROM 2_1_journal WHERE CAST(EntryId AS UNSIGNED) IN';
$data1 = '11, 12, 23';
$data1 = explode(",",$data1);//Convert Comma Separated String into Array
$in = str_repeat('?,', count($data1) - 1) . '?';
$query_select_all = $query_select_all .'('. $in .')';
$sql = $db->prepare($query_select_all);
$sql->execute($data1);

关于php - 带有位置占位符的 MySQL SELECT IN 仅根据字符串中的第一个值进行选择/过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17290342/

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