最近在学PHP看的是燕十八和韩顺平的php视频,先感谢这2位老师提供的视频,学到数据库这里的时候发现不能像java那样好使,比如我有一个config.inc.php是数据库配置
,在init.php中是配置是初始化信息,在初始化的时候 require("config.inc.php");引人了数据库配置文件,我想写一个function来打开和关闭数据库,
这时候发现这样写不可以,这个$CFG没引进来,因为一个函数开了个新栈,没有引人外边的变量,就像在自己里买了一口新的水缸,并没有引进外边的水一样,这时候看了看匿名函数和回调函数,发现匿名函数可以引进外边的水,再加在回调函数,这不就解决了么,于是就修改成了
本人已经测试过可以用,有问题的发qq邮箱553889841@qq.com
$CFG = array();
$CFG['localhost'] ='localhost';
$CFG['userName'] = 'root';
$CFG['password'] ='';
$CFG['db'] = 'tieba';
$CFG['charset'] ='utf8';
,在init.php中是配置是初始化信息,在初始化的时候 require("config.inc.php");引人了数据库配置文件,我想写一个function来打开和关闭数据库,
function getConn(){
$conn = mysql_connect($CFG['localhost'],$CFG['userName'],$CFG['password']);
if(!$conn){
exit("found databases error");
}
echo "打开数据库链接";
return $conn;
}
这时候发现这样写不可以,这个$CFG没引进来,因为一个函数开了个新栈,没有引人外边的变量,就像在自己里买了一口新的水缸,并没有引进外边的水一样,这时候看了看匿名函数和回调函数,发现匿名函数可以引进外边的水,再加在回调函数,这不就解决了么,于是就修改成了
$getConn = function () use ($CFG){//获得数据库链接
$conn = mysql_connect($CFG['localhost'],$CFG['userName'],$CFG['password']);
if(!$conn){
exit("found databases error");
}
echo "打开数据库链接";
return $conn;
}
这样就可以通过回调函数来$conn = call_user_func($getConn);//获得数据库链接
这样来获得数据链接,当然关闭数据库也很简单了,,跟java中写法一样
function closeConn($conn){//关闭数据库链接
echo "关闭数据库链接";
mysql_close($conn);
}
function setDatabases($conn,$db = 'tieba'){//选库
$sql = 'use '.$db;
mysql_query($sql,$conn);
}
本人已经测试过可以用,有问题的发qq邮箱553889841@qq.com