我必须多次连接到数据库,所以我想将数据库连接代码放在另一个名为 functions.php 的文件中
<?php
function connect_db(){
$conn = new PDO('mysql:host=localhost;dbname='dbname', 'usr', 'pass');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
?>
当我想连接时,我在另一个文件中插入了 connect_db(),
try {
connect_db();
$stmt = $conn->prepare('SELECT * FROM 'table' WHERE url= :url');
我得到一个错误..
Fatal error: Call to a member function prepare() on a non-object in /...
这是一个范围界定错误,对吗?但我听说让它全局化并不好。你能告诉我如何正确插入吗?
谢谢。
最佳答案
您必须在函数中返回该对象,否则它只是函数内的一个局部变量,一旦函数结束就会被清除。
function connect_db()
{
$conn = new PDO('mysql:host=localhost;dbname=dbname', 'usr', 'pass');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $conn;
}
$conn = connect_db();
关于php - 将php函数放在单独的文件中并从另一个文件中调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16602423/