mysql_query()奇怪的行为

时间:2013-06-30 19:24:47

标签: php mysql

我有一段 PHP 代码,它调用mysql_query()在远程数据库中插入一行。

奇怪的是mysql_query()总是返回 false 但是当我检查我的数据库时,我可以看到该行已正确插入。

我的PHP版本是5.4.3,这是我使用的代码:

class dbmanager{

    public function executeQuery($sql){
       $con = mysql_connect(config::getBBDDServer(), config::getBBDDUser(), config::getBBDDPwd());
       if (!$con){
           die('Could not connect: ' . mysql_error());
       }

       mysql_select_db(config::getBBDDName(), $con);

       $result = mysql_query($sql);

       mysql_close($con);

       return $result;
    }
}

//另一个文件......

private function insertRow($name, $descrip){
    $sql = sprintf("INSERT INTO myTable (name, descripction) VALUES ('%s', '%s')", mysql_real_escape_string($name), mysql_real_escape_string($description));    

    $db = new dbmanager();
    $result = $db->executeQuery($sql);

    if($result){ // always FALSE
        return mysql_insert_id();
    }else{
        return false;
    }
}

有人知道这里发生了什么吗?

1 个答案:

答案 0 :(得分:4)

您关闭与DB的连接

mysql_close($con);

之后你试着打电话

mysql_insert_id();

当然,它会返回false。

尝试使用

public function __destruct () {
    mysql_close($con);
}

而不是

mysql_close($con);

在你班上。