if语句在插入数据时工作不正常

j7dteeu8  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(221)

我创建了一个包含三个参数的函数。我的函数很简单,它使用pdo连接到数据库,但是当我调用它时,数据会被插入,但是当我将函数 Package 到变量中时,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";
}

我不知道为什么在插入数据时条件显示notconnected。任何帮助都将不胜感激。

332nm8kg

332nm8kg1#

空的 return; 与相同 return 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;
    }
}

相关问题