我创建了一个带有三个参数的函数。 我的函数很简单,它使用pdo连接到数据库,但是当我调用它时,数据被插入,但是当我将函数包装在变量中时,if语句无法按预期工作。我的功能就是这样
function connect($data,$username,$password){
try { $connect =new PDO($data,$username,$password);
$connect->setAttribute(PDO::ATTR_ERRMODE, ERRMODE_EXCEPTION);
$connect->exec("INSERT INTO data(fname,lname,uname, password) VALUES('raashid','din','dar','wow')");
} catch( Exception $e) {
echo "error occurred". $e->get messages();
}
return;
}
$db =connect("mysql:host=localhost","root","pass");
if($db){
echo "Yes connected";
} else {
echo " not connected";
}
我不知道为什么在插入数据时条件显示未连接。 任何帮助将不胜感激。
答案 0 :(得分:2)
空return;
与return null;
相同。并且null被视为falsy
的值,因此if($db){
为false
,您会看到相关的消息。
因此,您应该从函数中返回另一个值。例如,true
一切正常时,false
发生异常时,例如:
function connect($data,$username,$password){
try {
$connect = new PDO($data,$username,$password);
$connect->setAttribute(PDO::ATTR_ERRMODE, ERRMODE_EXCEPTION);
$connect->exec("INSERT INTO data(fname,lname,uname, password) VALUES('raashid','din','dar','wow')");
return true;
} catch( Exception $e) {
echo "error occurred". $e->getMessage();
return false;
}
}