php - 将php函数放在单独的文件中并从另一个文件中调用

标签 php mysql function

我必须多次连接到数据库,所以我想将数据库连接代码放在另一个名为 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/

相关文章:

php - fatal error : Uncaught SoapFault exception: [soap:Client]

mysql - 为什么这个错误 : Illegal mix of collations (utf8_general_ci, IMPLICIT) and (utf8_bin,NONE) for operation '=' , ON THIS QUERY?

类似于此 JavaScript 函数的 PHP 函数

c++ - 在C++中执行sql脚本

php - 使用 $_GET 的解析和安全性

javascript - 代码输出一个数字而不是未定义的?

function - 在 Mathematica 中组织笔记本并保存结果

php - Composer - 如何忽略一些 map 文件?

php - Magento 订单导入扩展,商业或其他

php - array_search 和 destroy 逻辑错误