2013-02-19 50 views
1

快速背景:
WordPress的插件自定义DATABSE查询(SQL UPDATE SET WHERE)

  • CRUD插件
  • WP 3.5
  • 创建这个插件为我个人的认识 - 我敢肯定一个已经存在。
  • 变量echo out ok。
  • 插件的创建部分需要3小时的研究才能使查询生效。试用Codex中的所有东西,从Stack Overflow得到一些答案,直到有效。

问题:

  • 在定制表格更新的行。
  • 该查询将在SQL工作 - >

    UPDATE SET wp_current_issue = 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); 

任何人都知道我可以重写这个查询更新语句?

回答

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

的其余部分是相同的。

+0

不幸的是,在该查询没有骰子。但我确实学到了一些重要的东西 - >整数变量...%i。我怎么不知道?感谢您的快速回复。 – TheWozJesse 2013-02-19 23:05:05

+0

这绝对有效。请原谅我先前解雇你的回应。这一直是一个形式问题;我留下了一个空白的行动。菜鸟的东西。我早些时候遇到过这个问题,并立即认为它是wordpress查询语法。先生,再次感谢您! – TheWozJesse 2013-02-19 23:45:37

+0

没问题,乐意帮忙。 – 2013-02-19 23:56:45