将php函数放在单独的文件中,并从另一个文件调用
我必须多次连接到db,所以我想将db连接代码放在名为functions.php的文件中,如下所示将php函数放在单独的文件中,并从另一个文件调用,php,mysql,function,Php,Mysql,Function,我必须多次连接到db,所以我想将db连接代码放在名为functions.php的文件中,如下所示 <?php function connect_db(){ $conn = new PDO('mysql:host=localhost;dbname='dbname', 'usr', 'pass'); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } ?> 我犯了个错误 致命错误:对中的非对象调
<?php
function connect_db(){
$conn = new PDO('mysql:host=localhost;dbname='dbname', 'usr', 'pass');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
?>
我犯了个错误
致命错误:对中的非对象调用成员函数prepare()
/
这是一个范围错误,对吗?但我听说让它全球化并不好。你能告诉我怎样把它插好吗
谢谢。你可以试试看
first.php
<?php
function connect_db(){
$conn = new PDO('mysql:host=localhost;dbname='dbname', 'usr', 'pass');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $con;
}
?>
你可以试试看
first.php
<?php
function connect_db(){
$conn = new PDO('mysql:host=localhost;dbname='dbname', 'usr', 'pass');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $con;
}
?>
必须在函数中返回对象,否则它只是函数中的一个局部变量,一旦函数结束就会被清除
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();
您必须在函数中返回对象,否则它只是函数中的一个局部变量,一旦函数结束就会被清除
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();
是的,这是作用域的问题-$conn
仅在函数中可用。您需要退回:
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();
是的,这是作用域的问题-$conn
仅在函数中可用。您需要退回:
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();
您的错误在这里:$conn=newpdo('mysql:host=localhost;dbname='dbname','usr','pass')代码>,应该是$conn=newpdo('mysql:host=localhost;dbname=“dbname”,'usr','pass')
@k102不太正确,问题是$conn
在connect\u db()
之外隐含了null
,这是错误所指的非对象。@Jack哦,我明白了。我已经在注意到的第一个错误上停止了:)您的错误在这里:$conn=newpdo('mysql:host=localhost;dbname='dbname','usr','pass')代码>,应该是$conn=newpdo('mysql:host=localhost;dbname=“dbname”,'usr','pass')
@k102不太正确,问题是$conn
在connect\u db()
之外隐含了null
,这是错误所指的非对象。@Jack哦,我明白了。我已在注意到的第一个错误上停止:)