php 请有人告诉我什么是错误的,在我的代码,我需要改变它

vc9ivgsu  于 2023-08-03  发布在  PHP
关注(0)|答案(3)|浏览(139)

我试图通过SQL查询从数据库中获取数据到WordPress插件。但是,即使没有显示任何错误,循环也不工作。我在网上试了很多东西,但都不管用。下面是我的代码:
查询代码:

<?php
        function vssp_settings() {
        global $wpdb;
        $result = $wpdb->get_results ( "SELECT * FROM students_list" );
        foreach( $result as $print) {
           
?>

字符串
显示查询结果:

<td><?php echo $print["first_name"];?></td>
<td><?php echo $print["last_name"];?></td>
<td><?php echo $print["email"];?></td>
<td><?php echo $print["phone"];?></td>
<td><?php echo $print["address"];?></td>


<?php 
}

}
?>

p4tfgftt

p4tfgftt1#

public void run($run);
并将foreach Package 在类似if ($result) {...}的条件中
参见get_results/
试试$print->...而不是$print["…"]
$输出
任何阵列_A|阵列_N|对象|OBJECT_K常量。使用前三个中的一个,返回一个按SQL结果行号从0开始索引的行数组。每行分别是一个关联数组(column => value,...)、一个数字索引数组(0 => value,...)、或一个对象(->column = value)

guykilcj

guykilcj2#

结果作为对象返回,并且您使用关联数组进行打印,因此它将给予错误。此外,您没有将数据存储在循环内的任何变量中,也没有在函数中返回任何值。你可以在你的程序中使用下面的代码:

function vssp_settings() {    
    global $wpdb;
    $result = $wpdb->get_results("SELECT * FROM students_list");
    $data = '<table>';
    foreach ($result as $print) {
    $data .= '<tr><td>' . $print->first_name . '</td>';
    $data .= '<td>' . $print->last_name . '</td>';
    $data .= '<td>' . $print->email . '</td></tr>';
}
$data .= '</table>';
return $data;

字符串
}

4dc9hkyq

4dc9hkyq3#

在WordPress中,get_results函数默认返回stdClass对象数组,而不是关联数组。因此,您需要使用箭头操作符(->)将元素作为对象属性访问,而不是使用方括号([])作为数组索引访问。
确保表名('students_list')正确且实际存在于数据库中。如果表名不同或依赖于WordPress前缀,您应该使用$wpdb->前缀。'your_table_name'。
作为预防措施,在继续foreach循环之前,请务必检查$result是否为空,以避免潜在问题。
要更详细地了解潜在错误,请考虑在WordPress中启用调试。这可以通过在wp_config.php文件中添加以下行来完成:define( 'WP_DEBUG', true );。这将为诊断提供更全面的错误输出。

相关问题