我试图在用户点击提交按钮后从模态插入数据。但它不工作,我有2个文件索引显示模态和PHP文件运行连接mysql并插入数据。我认为它不承认提交行动。我也有问题如何将主键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>";
?>
编辑:我现在正在使用
<?php
include 'db_conn.php';
$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);
?>
答案 0 :(得分:1)
你没有在sql查询中使用变量,你应该像这样使用它
$sql = "INSERT INTO crewlist(id, name,sname,linkname,description)
VALUES ('','{$cName}','{$ser}','{$link}','{$info}')";
答案 1 :(得分:1)
教科书的方法是使用预备语句:
$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
作为字符串,但文档中列出了其他类型。
如果您犯了错误,您将要启用exceptions for errors。
如果您正在进行大量的数据库工作,我强烈建议您使用Doctrine或Propel之类的ORM,因为它们会使您的记录更加愉快
答案 2 :(得分:-1)
插入与您的列不匹配的查询使用它将起作用:
$sql = "INSERT INTO crewlist(id, name,sname,linkname,description)
VALUES ('',cName,ser,link,info)";
如果您想要使用数据,这将在表格中插入cName,ser,link,info:
'".$cname."'