簡體   English   中英

mysql_query()奇怪的行為

[英]mysql_query() Strange behaviour

我有一段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;
    }
}

有人對這里發生的事情有想法嗎?

您關閉與數據庫的連接

mysql_close($con);

之后,您嘗試致電

mysql_insert_id();

當然,它將返回false。

嘗試使用

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

代替

mysql_close($con);

在你班上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM