php - mysqli_query insert 未生成任何响应,连接正常,但未插入数据

标签 php mysql forms mysqli

这是我的 PHP 脚本中的代码,位于带有表单的非常基本的 html 页面上。我已经尝试了单引号、双引号、单引号和双引号的所有可能变化。我根本没有得到任何回应。我已经测试以确保已建立连接,但数据库中未插入任何内容。我只是不知道我做错了什么。

// Check our connection
if (mysqli_connect_errno($con)) {
    print_r("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if(isset($_POST["submit"])){
    $name = $_POST['name'];
    $company = $_POST['company'];
    $email = $_POST['email'];
    $comment = $_POST['comment'];

     // Insert our data
    $query = mysqli_query("INSERT INTO 'contacts' ('id','name', 'company', 'email', 'comment')  VALUES ('','$name', '$company', '$email', '$comment')", $con);
    $result = ($query); 


    if( $result )
    {
        print_r('Success');
    }
    else
    {
        print_r('Query Failed');
    }
    mysqli_close($con);
}

最佳答案

您的订单已颠倒,http://php.net/manual/en/mysqli.query.php .

先连接,后查询。

mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )

您还错误地在列名称周围使用了单引号;这些应该是反引号; When to use single quotes, double quotes, and backticks in MySQL

此外,您永远不应该将用户输入直接传递给 SQL。这就是注入(inject)的发生方式。您应该考虑使用 prepared statementsHow can I prevent SQL injection in PHP?

if (mysqli_connect_errno($con)) {
        print_r("Connect failed: %s\n", mysqli_connect_error());
        exit();
}
if(isset($_POST["submit"])){ 
     $name = mysqli_real_escape_string($con, $_POST['name']);  
     $company = mysqli_real_escape_string($con,$_POST['company']);  
     $email = mysqli_real_escape_string($con,$_POST['email']);  
     $comment = mysqli_real_escape_string($con,$_POST['comment']);
     // Insert our data
     $query = mysqli_query($con, "INSERT INTO `contacts` (`name`, `company`, `email`, `comment`)  VALUES ('$name', '$company', '$email', '$comment')"); 
     if($query) {
          print_r('Success');
     } else {
          print_r('Query Failed');
     }
     mysqli_close($con);
}

关于php - mysqli_query insert 未生成任何响应,连接正常,但未插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33137985/

相关文章:

javascript - 网页加载后立即将光标强制到输入框

php - finfo 类是如何关闭的?

jquery - 如何在perl中加快从mysql加载图片的速度

php - 我如何在最多 4 个级别的树中选择类别

javascript - 使用 MySql 和 Websocket 协议(protocol)在 Perl 中创建一个小时

forms - 在 IE8 中输入表单中的键不起作用

forms - 带有 Assets 的 symfony 自定义表单类型

php - 控制字节码缓存和共享内存之间如何共享 apc.shm_size

php - 将值放在升序数据库列之间

php - SQL表创建期间包含文件