2015-09-15 47 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()。