Php 从$wpdb返回行-失去理智

Php 从$wpdb返回行-失去理智,php,wordpress,Php,Wordpress,在过去的两个小时里,我们一直在尝试获取这个$wpdb->get_results来返回一个数组,而$row=mysql\u fetch_array$result将以相同的方式返回数组。我什么都试过了,上厕所,划船等等。。。查阅了wp法典,并尝试了所有的例子,但实际上没有任何效果。所有内容都返回数组或NULL。我在这里发疯了,非常感谢您的帮助 我最初在PDO中编写了这个插件,然后意识到wordpress不支持它。我不是wpdb sql的粉丝。在这里 $query = $wpdb->get_re

在过去的两个小时里,我们一直在尝试获取这个$wpdb->get_results来返回一个数组,而$row=mysql\u fetch_array$result将以相同的方式返回数组。我什么都试过了,上厕所,划船等等。。。查阅了wp法典,并尝试了所有的例子,但实际上没有任何效果。所有内容都返回数组或NULL。我在这里发疯了,非常感谢您的帮助

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

$query = $wpdb->get_results("SELECT * FROM admin WHERE user_id = '$userid'");
foreach ($query as $row) {
echo $row->date;
}
首先,要在插件中使用wpdb类,您需要在start或wp-load.php中包含wp-blog-header.php

然后您需要将wpdb定义为全局的,以访问其所有功能

global $wpdb;
$query = $wpdb->get_results("SELECT * FROM admin WHERE user_id = '$userid'");
确保包含上述文件的正确路径

如果希望以数组的形式获取结果,则需要在查询中以array\u A或array\N的形式传递第二个参数


默认情况下,它被设置为“返回对象”

您必须在以下情况下通过此项:

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

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

数组_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对所有输入进行esacpe

还是没什么$您的_db_name=$wpdb->prefixjo_插件_选项';全球$wpdb$query=$wpdb->get_resultsSELECT*来自{$your_db_name},其中user_id={$userid},ARRAY\N;返回array0{},当您在phpmyadmin中运行此查询时,是否得到结果?尝试回显你的查询如果你在插件中包含了wp blog header或wp load,那么你做得不对,非常错误…自从Djanj建议我就包含了blog\u header。我使用了你的代码,它不再给我错误。但它确实告诉我“从中的空值创建默认对象…”这没有任何意义,因为表中有行。我将其更改为foreach$result\u array as$row,它终于开始工作了。我在法典中读到这样调用“$row->date”,但它的功能类似于“$row['date']”。如果选择结果作为对象作为默认选项,则应该使用$row->date。如果选择结果作为关联数组,则应使用$row['date']。但是我不知道为什么它会给你这个错误。请使用我的英语你到底在用这个代码吗?独立,插件,主题?什么功能,胡克?
$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
}