如果插入数据时语句无法正常工作

时间:2018-10-15 08:40:55

标签: php mysql if-statement

我创建了一个带有三个参数的函数。 我的函数很简单,它使用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";
}

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

1 个答案:

答案 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;
    }
}