Php 我的功能可以';t从数据库输出(PDO)
这个函数不会回显$title,当我把它直接放在索引文件中时,函数中的代码工作得很好,但是当我用它创建一个函数时,它不会回显任何东西 我可以让一个函数只回显“Hello”,但这不起作用 我已检查是否包含连接文件Php 我的功能可以';t从数据库输出(PDO),php,function,pdo,Php,Function,Pdo,这个函数不会回显$title,当我把它直接放在索引文件中时,函数中的代码工作得很好,但是当我用它创建一个函数时,它不会回显任何东西 我可以让一个函数只回显“Hello”,但这不起作用 我已检查是否包含连接文件 function title(){ $query = $db->prepare("SELECT * FROM posts"); $query->execute(); $get = $query->fetch(); $title = $
function title(){
$query = $db->prepare("SELECT * FROM posts");
$query->execute();
$get = $query->fetch();
$title = $get['title'];
echo $title;
}
您正在使用未定义的变量(
$db
)。如果您没有收到错误消息,这意味着您没有将PHP配置为显示错误消息。这是你在继续之前需要解决的问题;如果没有错误消息的帮助,就不可能正确地编写代码。这是一个例子
我建议这样做:
function title(Database $db){
}
。。。其中Database
是$db
所属的类名(根据问题标签,可能是PDO
)
但请不要只是应用修复程序,然后继续前进:确保收到最轻微的通知。您需要了解以下几点:
- 错误报告。为了确保您看到所有错误,我通常在调试时在脚本的顶部写下以下内容(只是不要让这些错误到达生产现场):
- 环境。在函数中,您将无法访问该函数之外的变量,除非您使用
关键字明确请求global
您正在尝试访问超出函数范围的变量$db 在函数$db=new PDO中重新初始化数据库,或者导入全局变量(在您的情况下可能更好更简单): 函数getPageContent($page){ 全球$db
在何处以及如何最好地存储全局数据库对象是许多讨论的主题。如果您想了解它,这里有一个开始的地方(也有许多其他地方)。但是如果你刚刚进入PHP,我会说使用全局变量是可以的。当全局变量工作时,要注意它们很容易导致无法维护的代码。我认为没有理由跳过函数参数。@Alvaro:完全同意,我希望我的回答没有被OP误解。
error_reporting(E_ALL);
ini_set('display_errors', 1);
$test = "A";
function testGlobal() {
var_dump(isset($test)); // false
global $test;
var_dump(isset($test)); // true
}
testGlobal();