PDO not working within function
我正在尝试使用PDO PREPARE语句创建一个函数来从MySQL表中提取页面内容。我的代码在我定义的函数之外工作得很好,但是无论我做什么,它都不会在函数内工作-我收到以下错误:
致命错误:在第6行的/home/tappess1/public_html/pages/stations.php中对非对象调用成员函数prepare()。
这是我的PHP:
1 2 3 4 5 6 7 8 9 10 | function getPageContent($page) { $st = $db->prepare("SELECT * FROM content WHERE title LIKE ?"); $st->execute(array($page)); $pageContent = $st->fetch(); $text = wordwrap($pageContent['content'], 100," "); $tabs = 4; $text = str_repeat(chr(9), $tabs) . str_replace(chr(10), chr(10) . str_repeat(chr(9), $tabs), $text); echo $text; } |
然后
1 | <?php getPageContent(Main);?> |
我甚至尝试使用查询而不是Prepare语句,只需调用getPageContent()就可以收到相同的错误。
谢谢!
您试图访问超出您的函数范围的变量
要么在函数
1 2 | function getPageContent($page) { global $db; |
全局数据库对象的最佳存储位置和最佳存储方法是许多讨论的主题。如果你想进入其中,这里是一个开始的地方(还有很多其他地方也在那里)。但是,如果你只是在学习PHP,我会说使用全局变量是很好的。
函数中的变量$db未知。