【发布时间】:2018-07-15 18:44:04
【问题描述】:
我以前做过,但这次我不知道出了什么问题!
这是我的 PHP 代码:
if (isset($_POST['add_sub']) && !empty($_POST['add_sub'])) {
$word = $_POST['word'];
$phonetic = $_POST['phonetic'];
$meaning = $_POST['meaning'];
$engMeaning = $_POST['engMeaning'];
$example = $_POST['example'];
$eMeaning = $_POST['eMeaning'];
$sqlAdd = "INSERT INTO words (word,meaning,eng-meaning,example,example-meaning,phonetic)
VALUES ('$word','$meaning','$engMeaning','$example','$eMeaning','$phonetic')";
$db->query($sqlAdd);
header('location: index');
}
}
这是我的表格:
<form action="index" method="post">
<input type="text" name="word" id="word" placeholder="Word" value="">
<input type="text" name="phonetic" id="phonetic" placeholder="Phonetic" value="">
<input type="text" name="meaning" id="meaning" placeholder="Meaning" value="">
<input type="text" name="engMeaning" id="endMeaning" placeholder="English Meaning" value="">
<textarea type="text" name="example" id="example" placeholder="Example" value="" rows="5"></textarea>
<textarea type="text" name="eMeaning" id="eMeaning" placeholder="Example Meaning" value="" rows="5"></textarea>
<button type="submit" name="add_sub">Add</button>
</form>
当我点击提交按钮时,它只是跳回索引页面,没有添加任何内容。
这里有什么我看不到的吗?!
更新:我可以毫无问题地从数据库中获取数据,只是无法插入。
【问题讨论】:
-
您对SQL注入持开放态度,请改用Prepared statements
-
@Mehdi 问题是,它对我来说大部分时间都有效,但为什么这次不行?!
-
@Mehdi 以及“您对 SQL 注入持开放态度”是什么意思?
-
您可能想了解 SQL 注入,这是一个有用的问题 How can I prevent SQL injection in PHP?。正如@mario 所说,您遇到的问题可能与缺乏转义有关
-
此 SQL 永远无法运行。未引用时,您的标识符名称无效。 dev.mysql.com/doc/refman/8.0/en/identifiers.html
basic Latin letters, digits 0-9, dollar, underscore