执行SQL查询时,如何在多行上操作
P粉311617763
P粉311617763 2023-09-12 12:46:45
[PHP讨论组]

此查询有效:

$player_id = $_POST['player_id'];//array

$ids = explode(',',$player_id);
$in = implode(',', array_fill(0, count($ids), '%d'));

$wpdb->query($wpdb->prepare("DELETE FROM {$player_table} WHERE id IN ($in)", $ids));

这不会:

$disabled = $_POST['disabled'];
$media_id = $_POST['media_id'];//array

$ids = explode(',',$media_id);
$in = implode(',', array_fill(0, count($ids), '%d'));

$wpdb->query($wpdb->prepare("UPDATE {$media_table} SET disabled = %s WHERE id IN ($in)", $disabled, $ids));

我不明白为什么。

P粉311617763
P粉311617763

全部回复(1)
P粉529245050

您需要将IDS分散为单独的参数,以匹配查询中的所有%s。使用...语法来实现。

$wpdb->query($wpdb->prepare("UPDATE {$media_table} SET disabled = %s WHERE id IN ($in)", $disabled, ...$ids));
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号