从$wpdb返回行 - 失去理智


returning rows from $wpdb - losing my mind

花了最后两个小时试图让这个$wpdb->get_results以相同的方式返回数组,而 ($row = mysql_fetch_array($result)) 会。 我已经尝试了一切,get_col,get_row等等...浏览了WP法典并尝试了他们所有的示例,实际上没有任何效果。 所有内容都返回数组 ( ) 或 NULL。 我在这里失去理智,任何帮助都非常感谢。

我最初在PDO中编写了这个插件,然后意识到wordpress不支持它。 我不是wpdb sql的粉丝。 在这里;

$query = $wpdb->get_results("SELECT * FROM admin WHERE user_id = '$userid'");
foreach ($query as $row) {
echo $row->date;
}
好吧,

你一定在 http://codex.wordpress.org/Class_Reference/wpdb 中穿越了这个:

三个预定义常量之一。默认为对象。

  • 对象 - 结果将作为对象输出。

  • 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

首先要在

插件中使用wpdb类,您需要在开始或wp-load.php中包含wp-blog-header.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