快速背景:
问题:
此查询将在SQL中运行 - >
更新wp_current_issue SET issue_year = 9999,issue_month = 29 WHERE issue_id = 17;
尝试:
global $wpdb;
$wpdb->update(CURRENT_ISSUE_TABLE,
array(
'issue_year' => $issue_year,
'issue_month' => $issue_month
),
array('issue_id' => $issue_edit_id),
array('%d','%d'),
array('%d'));
以及:(在列名称周围有和没有反引号)
global $wpdb;
$sql = $wpdb->prepare("UPDATE wp_current_issue SET issue_year=".$issue_year.", issue_month=".$issue_month." WHERE issue_id=".$issue_edit_id);
$wpdb->query($sql);
现在有趣的是,我通过INSERT INTO语句完成了同样的事情。尝试了一切。唯一可行的是:
global $wpdb;
$sql = $wpdb->prepare(
"INSERT INTO `".CURRENT_ISSUE_TABLE."` (`issue_path`,`issue_img_path`,`issue_year`,`issue_month`) VALUES (%s,%s,%d,%d)", $fileName_issue, $fileName_img, $issue_year, $issue_month);
$wpdb->query($sql);
任何人都知道如何为更新语句重写此查询?
答案 0 :(得分:1)
如果您想将该插入内容重写为更新,请假设我正确理解您的问题,然后使用
$sql = $wpdb->prepare(
"UPDATE `".CURRENT_ISSUE_TABLE."` SET `issue_path` = %s, `issue_img_path` = %s, `issue_year` = %s, `issue_month` = %s
WHERE issue_id = %i", $fileName_issue, $fileName_img, $issue_year, $issue_month, $issue_edit_id);
其余的都一样。