PHP菜鸟在这里:
我需要用$wpdb->update当前日期时间更新所有具有“NULL”值的数据库行。
这是当我直接插入 PHPMyAdmin 时可以使用的 MySQL
UPDATE `mytable`
SET `expired` = CURRENT_TIMESTAMP()
WHERE (`id` > 1 AND `expired` IS NULL)
使用$wpdb我发现我需要获取所有需要过期的 ID,如下所示:
$get_ids = $wpdb->get_results("
SELECT id
FROM $database
WHERE (`id` > 1 AND `expired` IS NULL)
");
所以现在我有一个 ID 数组,我的想法是将它们放在像$wpdb->update这样的位置
foreach($get_ids as $key => $value){
$data = array('expired' => $currentTime);
$where = array('id' => $value);
$wpdb->update(
$database,
$data,
$where,
);
print_r( $where );
}
print_r 返回
"Array
(
[id] => stdClass Object
(
[id] => 34
)
)
Array
(
[id] => stdClass Object
(
[id] => 38
)
)
但阅读文档我相信它需要更像这样
array(
'id' => $value
)
另外,这是我的错误日志中的PHP错误
[30-Jul-2020 03:42:50 UTC] PHP 注意:wpdb::prepare 被 错误地调用。不支持的值类型(对象)。请参阅WordPress 中的调试以获取更多信息。(此消息是在版本 4.8.2 中添加的。)位于 /Applications/MAMP/htdocs/myproject/wp-includes/functions.php 第 5167 行
[2020 年 7 月 30 日 03:42:50 UTC] PHP 警告:mysqli_real_escape_string() 期望参数 2 为字符串,即第 1158 行 /Applications/MAMP/htdocs/myproject/wp-includes/wp-db.php 中给出的对象
[30-Jul-2020 03:42:50 UTC] PHP 注意:wpdb::prepare 被 错误地调用。不支持的值类型(对象)。请参阅WordPress 中的调试以获取更多信息。(此消息是在版本 4.8.2 中添加的。)位于 /Applications/MAMP/htdocs/myproject/wp-includes/functions.php 第 5167 行
[2020 年 7 月 30 日 03:42:50 UTC] PHP 警告:mysqli_real_escape_string() 期望参数 2 为字符串,即第 1158 行 /Applications/MAMP/htdocs/myproject/wp-includes/wp-db.php 中给出的对象
抱歉,它很长,但我想清楚地展示我已经尝试过的内容,并清楚地了解我正在做的事情。
慕丝7291255