Php 对中的非对象调用成员函数prepare()
我正在尝试在我的网站上创建搜索功能。它没有显示任何结果,我一直在得到对x行中非对象上的成员函数prepare的调用 我的functions.php文件中包含了PDO连接 应该是这样的:Php 对中的非对象调用成员函数prepare(),php,mysql,pdo,Php,Mysql,Pdo,我正在尝试在我的网站上创建搜索功能。它没有显示任何结果,我一直在得到对x行中非对象上的成员函数prepare的调用 我的functions.php文件中包含了PDO连接 应该是这样的: $sql = "SELECT * FROM entries WHERE name LIKE :searchq or description LIKE :searchq or content LIKE :searchq";
$sql = "SELECT * FROM entries
WHERE name LIKE :searchq or
description LIKE :searchq or
content LIKE :searchq";
global $conn;
$stmt = $conn->prepare($sql);
确保已包含db配置文件。prepare是PDO连接对象的一种方法,而$conn变量不是。需要将其实例化为连接对象,如下所示:
$conn = new PDO('mysql:host=localhost;dbname=database', 'user', 'password');
或者,如果已经在全局范围内的某个位置执行了此操作,则只需在函数中声明:
global $conn;
这样做很好。该声明具有误导性。它只在执行脚本的范围内是全局的,不超越脚本的执行。所有这些对象都将在脚本执行结束时销毁。这与会议无关 $conn不存在于你的函数doSearch中,除非你指定了全局$conn,这一点在这里很多人都不赞成。我会在答案中建议它,然后被否决100次。我不知道$conn是在哪里定义的??将其作为参数发送到函数或作为类变量。。有道理是吗?为什么不赞成创建变量全局?
global $conn;