我的函数无法从数据库(PDO)输出

时间:2013-11-06 17:42:48

标签: php function pdo

这个函数不会回显$ title,当我把它直接放在索引文件中时,函数里面的代码工作得很好但是当我从中创建一个函数时它不会回显任何东西。

我可以创建一个只回显"Hello"的函数,但这不起作用。

我已检查过包含连接文件。

function title(){

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

3 个答案:

答案 0 :(得分:1)

您正在使用未定义的变量($db)。如果您没有收到错误消息,则表示您尚未配置PHP以显示错误消息。在你走得更远之前,这是你需要解决的问题;没有错误消息的帮助,无法正确编码。这是一个brief explanation

我建议改为:

function title(Database $db){
}

... Database$db所属的班级名称(根据问号标签,可能是PDO。)

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

答案 1 :(得分: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();

答案 2 :(得分:0)

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

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

function getPageContent($ page){   全球$ db;

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