execute($sql);
用 execute 执行 sql语句后,
直接用
if( execute($sql) ){
return true;
}else{
return false;
}
这样来判断,不能直接判断语句是否成功。
然后用zend看了下核心代码
/**
* 执行语句
* @access public
* @param string $str sql指令
* @return integer|false
*/
public function execute($str) {
$this->initConnect(true);
if ( !$this->_linkID ) return false;
$this->queryStr = $str;
//释放前次的查询结果
if ( $this->queryID ) { $this->free(); }
N('db_write',1);
// 记录开始执行时间
G('queryStartTime');
$result = mysql_query($str, $this->_linkID) ;
$this->debug();
if ( false === $result) {
$this->error();
return false;
} else {
$this->numRows = mysql_affected_rows($this->_linkID);
$this->lastInsID = mysql_insert_id($this->_linkID);
return $this->numRows;
}
}
最后解决方法用
if(M('')->execute($sql)!== false){
}