我有一段 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);
在你的类里面。
关于php - mysql_query() 奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17394032/