我想往数据库里添加数据,可以失败了,这是我的sql类,再往下的代码是我调用这个类的代码,希望好心人帮解答下,感激不尽!
<?php
  class SqlTool{
     private $conn;
 private $host="localhost";
 private $user="root";
 private $password="root";
 private $db="test";  function SqlTool(){
    $this->conn=mysql_connect($this->host,$this->user,$this->password);
if(!$this->conn){
   die("connect faild!".mysql_error());
}
mysql_select_db($this->db,$this->conn);
mysql_query("set names gbk");
  }
  //完成select
  //function execute_dql($sql){
  
  //}
  //function:update ,delete,insert
  function execute_dml($sql){
     $b=mysql_query($sql);
 //var_dump($b);
 if(!$b){
    return 0;//faild
 }else{
    if(mysql_affected_rows($this->conn)>0){
    return 1;//success
}else{
    return 2;//no influence
}
 }
  }
}
?><?php
  require_once "mysqlTool.php";
  //create mysql
  $sql="insert into user1(name,password,email,age) values ('小明',md5(123),'[email protected]',20)";
  $sqlTool=new SqlTool();
  $res=$sqlTool->execute_dml($sql);
  //var_dump($res);
  if($res==0){
     echo "faild!";
  }else if($res==1){
     echo "success";
  }else if($res==2){
     echo "no influence";
  }
?>

解决方案 »

  1.   

    $this->conn=mysql_connect($this->host,$this->user,$this->password) or die('not connect mysql');
    看看连接上数据库没得
      

  2.   

     $sql="insert into user1(name,password,email,age) values ('小明',md5(123),'[email protected]',20)";改成
     $sql="insert into user1(name,password,email,age) values ('小明','".md5(123)."','[email protected]',20)";
    "…… ……"中间的函数不会被期望执行,除非eval如果密码就是字符串“md5(123)”,,可以这样 $sql="insert into user1(name,password,email,age) values ('小明','md5(123)','[email protected]',20)";
      

  3.   

    连接上了,这句话不也能说明我连接上了吗?if(!$this->conn){
    die("connect faild!".mysql_error());
    }
      

  4.   

    失败了肯定是sql指令执行失败了。$b=mysql_query($sql) or die(mysql_error());
    这样,如果有错误就会提示了。
      

  5.   

    2楼你的方法也行不通,最终结果依然是faild!