致命错误:未捕获错误:调用未定义函数堆栈跟踪:#0 {main}已抛出

时间:2018-07-27 22:16:48

标签: php mysql database

我开始研究PHP,遇到了这样的问题。 get_single_all函数可以正常工作,但get_single_by_id会产生:

  

致命错误:未捕获错误:调用未定义函数   get_single_by_id()在C:\ xampp \ htdocs \ urb \ content-single.php中:   3堆栈跟踪:#0 {main}放在C中:\ xampp \ htdocs \ urb \   第三行上的content-single.php

我确实试图找到解决问题的方法,但对我自己一无所获。 这是我的代码和a screenshot of database

function get_singles_all() {
    global $db;
    $singles = $db->query("SELECT * FROM singles");
    return $singles;
}

function get_single_by_id($id) {
    global $db;
    $singles = $db->query("SELECT * FROM singles WHERE id =$id");
    foreach ($singles as $single) {
        return $single;
    }
 }

<?php
$single = get_single_by_id($_GET['id']);
?>

谢谢!

1 个答案:

答案 0 :(得分:0)

正如我在这里看到的那样,您正在尝试return来自此行循环的结果:

foreach ($singles as $single) {
    return $single;
}

那真是个坏主意。因此,我建议您直接返回$singles变量,因为您正在通过id来获取数据,因此SQL语句将返回的ID的零或仅一个结果是ID中的主键您的数据库(希望您这样做!)。这是一个片段:

function get_single_by_id($id) {
        global $db;
        $singles = $db->query("SELECT * FROM singles WHERE id =$id");
        return $singles;
}

PS:请注意php开头标记的位置,该位置必须刚好在函数声明的上方。

希望我进一步推动了你。