2015-09-15 75 views
0

請幫我解決這個問題。缺少wpdb的參數2 prepare()

我得到這個錯誤:

Missing argument 2 for wpdb::prepare()

對於此行:

$myrows = $wpdb->get_results($wpdb->prepare("SELECT name, term_id 
              FROM wp_categoryindex 
              WHERE alpha IN ('0','1','2','3','4','5','6','7','8','9')")); 

謝謝!

+0

的可能重複[?如何防止SQL注入的PHP(http://stackoverflow.com/questions/60174/how-可以防止SQL注入在php) –

+0

看看這些:http://codex.wordpress.org/Class_Reference/wpdb#Protect_Queries_Against_SQL_Injection_Attacks和http://codex.wordpress.org/Data_Validation#Database –

回答

2

你爲什麼要使用這兩種功能get_results()prepare()?你有沒有關於這些功能的想法?

我認爲這可能對您有用。能否請您試試這個:

$myrows = $wpdb->get_results("SELECT name, term_id 
              FROM wp_categoryindex 
              WHERE alpha IN ('0','1','2','3','4','5','6','7','8','9')"); 

或者

$myrows = $wpdb->prepare("SELECT name, term_id 
              FROM wp_categoryindex 
              WHERE alpha IN %s", "('0','1','2','3','4','5','6','7','8','9')"); 
$getData = $wpdb->get_var($myrows); 
+0

就是這樣!謝謝!!! – user2151960

0

那麼,在快速登錄RT*M之後,您發現系統指出的缺少的第二個參數應該是支持sprint()-like佔位符的參數,您沒有這個參數。因此,您需要查看該方法的文檔,並考慮您是希望使用替換功能還是使用不需要這些替換功能的其他方法,例如query()

參數

  • $查詢 (字符串)(必需)查詢語句的sprintf() - 樣佔位符

  • 的$ args (陣列|混合)(必需)的變量數組如果被調用爲http://php.net/vsprintf vsprintf(),或者第一個變量替換爲查詢的佔位符(如果被調用的形式爲http://php.net/sprintf sprintf()),則替換爲查詢的佔位符。

  • 的$ args,... (混合)(必填)進一步變量替換到查詢的佔位符,如果被稱爲像http://php.net/sprintf的sprintf()。