PHP:不能基于Web表单在数据库中插入多个记录

时间:2019-09-06 23:54:47

标签: php mysql

找到解决方案:我必须将#ID列设置为auto_increment。另请参阅:Auto increment in phpmyadmin


我已经制定了一个网络公式,我想获取数据并将其插入到MySQL数据库中。 我是PHP和MySQL的新手,在理解为什么不能插入多于1行时遇到了一些麻烦。

为了学习获取表单数据,我基本上已经做了以下工作: https://www.youtube.com/watch?v=2HVKizgcfjo 视频中的那个家伙成功地从公式中插入了更多记录。

注意:我不是在本地主机上运行,​​而是在Web旅馆(使用Linux)上运行。

我的疑难解答的一部分: 我不同于面向过程和面向对象的编程,并搜索StackOverflow来查找处理索引的方法-但是我想那不是我的提示吗?

唯一值或集合应该没有问题。

我一直不确定我是否应该在语句中包含#id列,但我是否应该这样做,因为我一直在观看的视频没有完成,并且没有任何问题。

我的代码: 我的file.php本质上如下:

<?php

    // Getting form data. Note that some are not shown here for overview
    $firstName = $_POST['firstName'];
    $phoneNumber = $_POST['phoneNumber'];

    // Database connection
    $conn = new mysqli('some_host','hostname','password','database');

    // Checks connection
    if ($conn->connect_error){
        die('Connection Failed : '.$conn->connect_error);
    } else {

                // Prepare statement
        $stmt = $conn->prepare("insert into DB_test(firstName,phoneNumber) values(?,?)");
        $stmt->bind_param('si',$firstName,$phoneNumber);

            // Tells if insertion was possible to execute.
            // It echoes "Unable to create record" when there is 1 record in db already
        if ($stmt->execute()) {
          echo "New record created successfully";
        } else {
          echo "Unable to create record";
        }

        $stmt->close();
        $conn->close();

    }
?>

当无法插入新记录时,以下返回-1。能够时返回1。

printf("%d Row inserted.\n", mysqli_stmt_affected_rows($stmt));

还有其他方法可以通过语句在MySQL数据库中插入记录吗?或者我错过了有关PHP和MySQL的重要说明?

祝一切顺利!

0 个答案:

没有答案