我正在尝试使用PDO Prepare语句创建一个从MySQL表中提取页面内容的函数.我的代码在我定义的函数之外工作得很好,但无论我做什么它都不能在函数内工作 - 我收到以下错误:
致命错误:在第6行的/home/tappess1/public_html/pages/stations.php中调用非对象的成员函数prepare()
这是我的PHP:
function getPageContent($page) {
$st = $db->prepare("SELECT * FROM content WHERE title LIKE ?");
$st->execute(array($page));
$pageContent = $st->fetch();
$text = wordwrap($pageContent['content'], 100, "\n");
$tabs = 4;
$text = str_repeat(chr(9), $tabs) . str_replace(chr(10), chr(10) . str_repeat(chr(9), $tabs), $text);
echo $text;
}
Run Code Online (Sandbox Code Playgroud)
然后
<?php getPageContent(Main);?>
Run Code Online (Sandbox Code Playgroud)
我甚至尝试使用查询而不是prepare语句,只需调用getPageContent()并收到相同的错误.
谢谢!
Pek*_*ica 14
您正在尝试访问$db超出函数范围的变量.
要么在函数内重新初始化数据库$db = new PDO....,要么 - 在您的情况下可能更好更容易 - 导入全局变量:
function getPageContent($page) {
global $db;
Run Code Online (Sandbox Code Playgroud)
在哪里以及如何最好地存储全局数据库对象是很多讨论的主题.如果你想进入它,这里有一个开始的地方(SO上也有很多其他的).但是如果你刚刚进入PHP,我会说使用全局变量很好.
| 归档时间: |
|
| 查看次数: |
4484 次 |
| 最近记录: |