这是我的测试代码部分,把pdo连接的语句 写成函数后就连接不了数据库了。
<?php
header('content-type:text/html;charset=utf8');
//链接数据库
//1.非函数,成功连接
try{
$dsn='mysql:host=localhost;dbname=cyotel';
$username='root';
$password='root';
$pdo=new PDO($dsn,$username,$password);
//打印连接结果
}catch(PDOException $e){
echo $e->getMessage();
}
var_dump($pdo);
//2.函数,连接失败
function connect(){
try{
$dsn='mysql:host=localhost;dbname=cyotel';
$username='root';
$password='root';
$pdo2=new PDO($dsn,$username,$password);
//打印连接结果
}catch(PDOException $e){
echo $e->getMessage();
}
}
connect();
var_dump($pdo2);
?>
浏览器中的测试打印结果
php新手,还不太会面向对象~目前只懂点面向过程,跪求大神解答~
你的$pdo2是定义在function里面的,也就是说其将作为局部变量。然而你在外边直接调用了connect函数。
所以在函数的外边是访问不到$pdo2的,所以才会报出 Undefined variable的错误。这下明白了吧。
希望对你有所帮助。 :-)