0

这个函数不会回显 $title,当我将它直接放在索引文件中时,函数内部的代码效果很好,但是当我用它创建一个函数时,它不会回显任何东西。

我可以制作一个只是回显的功能,"Hello"但这不起作用。

我已检查是否包含连接文件。

function title(){

    $query = $db->prepare("SELECT * FROM posts");
    $query->execute(); 
    $get = $query->fetch(); 
    $title = $get['title'];
    echo $title;
}
4

3 回答 3

1

您正在使用未定义的变量 ( $db)。如果您没有收到错误消息,则表示您尚未配置 PHP 以显示错误消息。这是您在更进一步之前需要解决的问题;如果没有错误消息的帮助,就不可能正确编码。这是一个简短的解释

我建议这样做:

function title(Database $db){
}

...Database类名$db属于哪里(可能PDO根据问题标签)。

但请不要只是应用修复程序并继续前进:确保您收到最轻微的通知

于 2013-11-06T17:45:30.887 回答
0

您正在尝试访问函数范围之外的变量 $db。

要么在函数 $db = new PDO.... 中重新初始化你的数据库,要么 - 在你的情况下可能更好更容易 - 导入全局变量:

函数 getPageContent($page) { 全局 $db;

在哪里以及如何最好地存储全局数据库对象是很多讨论的主题。如果你想进入它,这里是一个开始的地方(SO 上还有很多其他的)。但是如果你刚接触 PHP,我会说使用全局变量很好。

于 2013-11-06T18:00:02.480 回答
0

您需要阅读以下内容:

  • 错误报告。为了确保您看到所有错误,我通常在调试时将其写在脚本的顶部(只是不要让这些到达生产站点):

error_reporting(E_ALL);
ini_set('display_errors', 1);
  • 环境。在函数中,您将无法访问该函数之外的变量,除非您通过使用global关键字明确要求这样做。

$test = "A";
function testGlobal() {
    var_dump(isset($test)); // false

    global $test;
    var_dump(isset($test)); // true
}

testGlobal();
于 2013-11-06T17:50:39.423 回答