找到解决方案:我必须将#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的重要说明?
祝一切顺利!