通过modal和PHP在数据库中插入数据


Inserting data in database through modal and PHP

在用户单击提交按钮后,我正在尝试从模态插入数据。但它不起作用,我有两个文件索引来显示模态,PHP文件来运行connectMySQL并将数据插入其中。我认为它不识别提交操作。我也有一个问题,我该如何将主键id插入数据库,还是它自动添加。

HTML提交代码:

<button type="submit" action="add.php"class="btn">Finish!</button>

PHP代码:

<?php
include 'db.php';
$cName = $_POST['form-name'];
$ser = $_POST['form-s-name'];
$link = $_POST['form-t'];
$info = $_POST['form-des'];

  $sql = "INSERT INTO crewlist(id, name,sname,linkname,description)
VALUES ('','".$cName."','".$ser."','".$link."','".$info."')";

mysqli_query($conn,$sql);
if(mysqli_affected_rows($conn) > 0){
    echo "<p>Added</p>";

实现这一点的教科书方法是使用准备好的语句:

$stmt = mysqli_prepare($conn,
  "INSERT INTO crewlist(name,sname,linkname,description) VALUES (?,?,?,?)"
);
mysqli_stmt_bind_param($stmt, 'ssss',
  $_POST['form-name'],
  $_POST['form-s-name'],
  $_POST['form-t'],
  $_POST['form-des']
);
$result = mysqli_stmt_execute($stmt);

如果您正确地使用了准备好的语句,就可以保证您的值是用正确的转义插入的。在这里,我使用了s作为字符串,但文档中列出了其他类型。

如果您犯了错误,您需要为错误启用异常。

如果你正在做大量的数据库工作,我强烈建议你使用类似ORM的Doctrine或Propel,因为它们会让你与记录的接口更加愉快。

如果在sql查询中没有使用变量,应该像这样使用

$sql = "INSERT INTO crewlist(id, name,sname,linkname,description)
        VALUES ('','{$cName}','{$ser}','{$link}','{$info}')";

插入与您的列不匹配的查询。使用此选项将起作用:

   $sql = "INSERT INTO crewlist(id, name,sname,linkname,description)
VALUES ('',cName,ser,link,info)";

如果你想使用数据,这将在表中插入cName、ser、link和info:

'".$cname."'