花了最后两个小时试图让这个$ wpdb-> get_results以相同的方式返回一个数组($ row = mysql_fetch_array($ result))。我已经尝试了所有东西,get_col,get_row等...通过wp codex并尝试了所有他们的例子,几乎没有任何作用。 Everything返回Array()或NULL。我在这里失去了理智,任何帮助都非常感激。
我最初在PDO中编写了这个插件,然后意识到wordpress不支持这个。我不是wpdb sql的粉丝。这是;
$query = $wpdb->get_results("SELECT * FROM admin WHERE user_id = '$userid'");
foreach ($query as $row) {
echo $row->date;
}
答案 0 :(得分:6)
你必须在http://codex.wordpress.org/Class_Reference/wpdb:
中越过这一点三个预定义常量之一。默认为OBJECT。
OBJECT - 结果将作为对象输出。
ARRAY_A - 结果将作为关联数组输出。
ARRAY_N - 结果将作为数字索引数组输出。
您可以按如下方式制作代码:
$result_array = $wpdb->get_results("SELECT * FROM admin WHERE user_id = '$userid'", ARRAY_A);
foreach( $result_array as $key -> $value ) {
echo "Key = " . $key . "<br />"; // outputs field name
echo "Value = " . $value . "<br />"; // outputs the value
}
不要忘记使用$wpdb->prepare()
来估算所有输入
http://codex.wordpress.org/Class_Reference/wpdb#Protect_Queries_Against_SQL_Injection_Attacks
答案 1 :(得分:1)
首先在插件中使用wpdb
类,您需要在开头包含wp-blog-header.php
或wp-load.php
然后你需要将wpdb定义为全局来访问其所有函数
global $wpdb;
$query = $wpdb->get_results("SELECT * FROM admin WHERE user_id = '$userid'");
确保包含上述文件的正确路径
如果您想将结果作为数组获取,则需要将查询中的第二个参数作为ARRAY_A or ARRAY_N
$query = $wpdb->get_results("SELECT * FROM admin WHERE user_id = '$userid'",ARRAY_N);
默认设置为返回OBJECT