PHP使用query方法插入主键重复值,不会提示出错!!!
<?php
    error_reporting(1);    $db=new mysqli('localhost','root','xxxx','zjjfz');
    $db->query('SET CHARACTER SET utf8');
    echo mysql_error();
    
    $query="insert into tab_room (room_id,room_name,software) value (1,'qw12','12qwee');";
    
    if($db->query($query)){
     echo '插入完成'.'<br>';
    }else{
     echo mysql_errno().'<br>';
     echo mysql_error().'<br>';
    }
   
    $db->close();
    
?>  
--
-- 表的结构 `tab_room`
--CREATE TABLE `tab_room` (
  `room_id` int(11) NOT NULL auto_increment COMMENT '机房编号',
  `room_name` varchar(20) NOT NULL COMMENT '机房名称',
  `software` varchar(1500) default NULL COMMENT '软件表',
  `rows` char(20) NOT NULL default '12,14,14,14,14' COMMENT '排及排机数',
  `staff_id` int(4) default NULL COMMENT '负责人工号',
  PRIMARY KEY  (`room_id`),
  UNIQUE KEY `room_name` (`room_name`),
  KEY `staff_id` (`staff_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;--
-- 导出表中的数据 `tab_room`
--INSERT INTO `tab_room` (`room_id`, `room_name`, `software`, `rows`, `staff_id`) VALUES
(1, 'werfwhfgh', '很多软件', '12,14,14,14,14', NULL),
在我调试平台上,以上代码没有提示出错。
是不是我的PHP或MYSQL设置有问题!!!

解决方案 »

  1.   


    $db=mysql_connect('localhost','root','xxxx'); 
    mysql_select_db("zjjfz",$db); 
    mysql_query("set names 'utf8'");
    $sql="insert into tab_room (room_id,room_name,software) value (1,'qw12','12qwee')";
    $result=mysql_query($sql,$db); 
    if(mysql_errno()){
        echo mysql_errno().'<br>';
        echo mysql_error().'<br>';
    }
    如果我用上面的代码就会正常提示出错!!
    1062
    Duplicate entry '1' for key 1
    是不是我面向对无象的获取错误信息的 函数 用错了!!!
      

  2.   

    你的mysqli有问题,那条语句没有执行。
      

  3.   

    你的数据库操作类的 query 方法写的有问题
      

  4.   

    问题已解决,是我用错了方法!!!
    面向对象的获取错误信息跟错误编号是使用mysqli对象的属性echo $db->errno;   //$db为mysqli对象
    echo $db->error;