【问题标题】:Fail to insert into database插入数据库失败
【发布时间】:2015-03-01 11:27:37
【问题描述】:

我正在尝试通过该网站向我的留言簿添加一些内容。但问题是:我无法插入数据库。 使用我的 WAMP 服务器,我可以使用此处的查询直接插入其中。

我也测试了 $name 变量并且它们被正确填写。我已经切换了 $con 和 $sql。我尝试在不使用 {} 的情况下以不同方式格式化查询。{}但似乎没有一种选择有效。与我的 DBS 的连接有效(我没有在此处包括该部分)。我试过 mysql_query 和 mysqlI_query。

我的 WAMP 服务器启用了 php_mysqli。当我运行它时,它不会给出任何错误。

你们知道我做错了什么吗?

$con = mysqli_connect($host, $username, $password)or die("cannot connect");
mysqli_select_db($con, $db_name)or die("cannot select DB");

$datetime=date("y-m-d h:i:s"); //date time
$name= $_POST['name'];
$email= $_POST['email'];
$comment= $_POST['comment'];
$sql="INSERT INTO guestbook(name, email, comment, datetime) VALUES('{$name}','${email}','{$comment}','{$datetime}')";
mysql_query($sql,$con);

//查看留言页面的链接 header('location:viewguestbook.php');

【问题讨论】:

  • SQL 注入.... 自 90 年代后期以来失败的第一名
  • 你混合mysql_*mysqli_*
  • 不要使用mysql_*。请改用pdo

标签: php mysql mysqli sql-insert


【解决方案1】:

请试试这个,下次你必须搜索mysqli准备好的语句。

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");


if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

$mysqli->query("insert...");

【讨论】:

    【解决方案2】:
    here is the problem in this statement
    
    mysql_query($sql,$con);
    
    problem 1: you are using mysqli and in above statement your are querying mysql.
    
    problem 2: $con(connection variable is must be the first parameter)
    
    Write this statement as folloing. that will solve the problem
    
    mysqli_query($con,$sql);
    

    【讨论】:

      【解决方案3】:

      在您的插入查询中,您使用 ${email} 而不是 {$email} 并将 mysql_query 更改为 mysqli_query 下面是应该工作的代码

      $con = mysqli_connect($host, $username, $password)or die("cannot connect");
      mysqli_select_db($con, $db_name)or die("cannot select DB");
      
      $datetime=date("y-m-d h:i:s"); //date time
      $name= $_POST['name'];
      $email= $_POST['email'];
      $comment= $_POST['comment'];
      $sql="INSERT INTO guestbook(name, email, comment, datetime) VALUES('{$name}','{$email}','{$comment}','{$datetime}')";
      mysqli_query($sql,$con);
      

      【讨论】:

        【解决方案4】:

        我不知道你得到了什么错误。你可以这样做:

        mysqli_query($con, $query) or die(mysqli_error($con));
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-01-17
          • 1970-01-01
          • 2015-08-15
          • 2021-04-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多