2013-02-19 77 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