Php 使用自定义函数通过PDO连接到数据库
我有一个函数叫做:table 如果我在函数外部编写了PDO连接,则无法通过PDO连接到数据库,如下所示:Php 使用自定义函数通过PDO连接到数据库,php,pdo,scope,database-connection,custom-function,Php,Pdo,Scope,Database Connection,Custom Function,我有一个函数叫做:table 如果我在函数外部编写了PDO连接,则无法通过PDO连接到数据库,如下所示: include_once("server.inc"); $connect = new PDO('mysql:host='.$servername.'; dbname='.$db.';charset=utf8' , $username, $password); function table() { $sql="select * FROM d1"
include_once("server.inc");
$connect = new PDO('mysql:host='.$servername.'; dbname='.$db.';charset=utf8' , $username, $password);
function table()
{
$sql="select * FROM d1" ;
$result = $connect->query($sql) ;
foreach ($result as $rows )
{
echo $rows["Course_name"] . "<br/>" ;
}
}
echo table() ;
function table()
{
include_once("server.inc");
$connect = new PDO('mysql:host='.$servername.'; dbname='.$db.';charset=utf8' , $username, $password);
$sql="select * FROM d1" ;
$result = $connect->query($sql) ;
foreach ($result as $rows )
{
echo $rows["Course_name"] . "<br/>" ;
}
}
echo table() ;
此代码不起作用,并出现以下错误:
注意:未定义变量:connect
致命错误:对非对象调用成员函数查询
现在,如果我使用这样的代码:
include_once("server.inc");
$connect = new PDO('mysql:host='.$servername.'; dbname='.$db.';charset=utf8' , $username, $password);
function table()
{
$sql="select * FROM d1" ;
$result = $connect->query($sql) ;
foreach ($result as $rows )
{
echo $rows["Course_name"] . "<br/>" ;
}
}
echo table() ;
function table()
{
include_once("server.inc");
$connect = new PDO('mysql:host='.$servername.'; dbname='.$db.';charset=utf8' , $username, $password);
$sql="select * FROM d1" ;
$result = $connect->query($sql) ;
foreach ($result as $rows )
{
echo $rows["Course_name"] . "<br/>" ;
}
}
echo table() ;
一切都会好的,但另一个问题会发生-我只能使用函数表一次!如果我再次使用它,将发生以下错误:
注意:未定义的变量:servername
注意:未定义变量:db
注意:未定义变量:username
注意:未定义变量:password
警告:为foreach提供的参数无效
我该怎么做才能多次使用我的函数而不出错?您可以将PDO实例注入函数:
include_once("server.inc");
$connect = new PDO('mysql:host='.$servername.'; dbname='.$db.';charset=utf8' , $username, $password);
function table($connect)
{
$sql="select * FROM d1" ;
$result = $connect->query($sql) ;
foreach ($result as $rows )
{
echo $rows["Course_name"] . "<br/>" ;
}
}
//echo table() ;
// Thanks barmar, missed the param before editing!
table($connect); // there's no need to echo the function as it does not return any value,
// the function does the echoing
哦,你应该读一下,还有