【发布时间】:2019-11-10 12:53:19
【问题描述】:
所以,一个有效的代码有这些 html 表单(showBack.php):
<form action="add.php" method="POST">
Name: <input type="text" name="addName"><br>
Price: <input type="text" name="addPrice"><br>
<input type="submit" value="Add">
然后将输入插入到另一个文件(add.php)中的数据库中:
$nam=$_POST['addName'];
$prcc=$_POST['addPrice'];
$sql= 'INSERT INTO korzina (Name, Price, Num)
VALUES ("'.$nam.'","'.$prcc.'", "0")';
mysqli_query($conn, $sql);
现在,我所做的只是添加更多字段并更改添加该信息的表 (编辑.php):
<form action="addd.php" method="POST">
Аты: <br><input type="text" name="addName"><br>
Сипаты: <br><input type="text" name="addDes"><br>
Бағасы: <br><input type="text" name="addPrc"><br>
Өндіруші бағасы: <br><input type="text" name="addRrp"><br>
Саны: <br><input type="text" name="addQ"><br>
Суреті: <br><input type="text" name="addImg"><br>
<input type="hidden" name="addDat" value="<?=$date ?>">
<input type="submit" value="Қосу">
这只是意味着要在另一个文件中添加更多值(addd.php):
$nam=$_POST['addName'];
$des=$_POST['addDes'];
$prc=$_POST['addPrc'];
$rrp=$_POST['addRrp'];
$quant=$_POST['addQ'];
$img=$_POST['addImg'];
$dat=$_POST['addDat'];
$sql= 'INSERT INTO products (name, desc, price, rrp, quantity, img, date_added)
VALUES ("'.$nam.'","'.$des.'", "'.$prc.'", "'.$rrp.'", "'.$quant.'", "'.$img.'", "'.$dat.'")';
mysqli_query($conn, $sql);
但现在它不起作用。这是完全相同的代码,只是扩展了一点,但它不起作用,它让我发疯。
编辑:没有任何错误,只是代码不起作用。较短的代码有效,即将输入添加到表中没问题,但现在我添加了更多变量,它没有。另外,这只是一个愚蠢的任务,我不关心sql注入或其他什么,我相信我的老师甚至不知道它是什么
【问题讨论】:
-
始终使用参数!永远不要使用文字值来处理查询字符串。那么你就不会有这些问题了。再一次。
-
检查错误消息或服务器日志以找出究竟是什么“不起作用”。
-
请阅读SQL injection。不要使用字符串连接构建查询,而是使用 prepared statements 和 bound parameters。请参阅 this page 和 this post 了解一些很好的示例。
-
您不知道哪里出了问题,因为您没有检查代码中的错误。永远不要假设代码总是能完美运行。使用
mysqli_error()从数据库中获取详细的错误消息。 -
@BartFriederichs 我没有提到错误,因为没有错误。代码不起作用但没有错误