我遇到的问题:我制作了一个“联系”表单,它应该将数据发送到我的数据库。一切正常,从本地主机访问页面后没有错误,显示了我想要看到的结果,但数据库(本地主机/phpmyadmin/..)没有更新任何信息。
这是我的 PHP:
if(isset($_POST['insert']))
{
$hostname = 'localhost';
$username = 'root';
$password = '';
$databaseName = 'nig';
$Nume = $_POST['nume'];
$Email = $_POST['email'];
$Telefon = $_POST['telefon'];
$Subiect = $_POST['subiect'];
$Mesaj = $_POST['mesaj'];
$connect = mysqli_connect($hostname, $username, $password, $databaseName);
$query = "INSERT INTO `amar` (`nume`, `email`, `telefon`, `subiect`, `mesaj`) VALUES ('$Nume','$Email','$Telefon','$Subiect','$Mesaj')";
$result = mysqli_query($connect,$query);
if($result)
{
echo 'Mesaj trimis.';
}else{
echo 'Mesaj netrimis';
}
mysqli_free_result($result);
mysqli_close($connect);
这是我的 HTML:
<form action="insert2.php" action="post">
<form role="form">
<div class="form-group">
<label for="nume">Nume complet</label>
<input type="text" class="form-control" name="nume">
</div>
<div class="form-group">
<label for="email">Adresa e-mail</label>
<input type="text" class="form-control" name="email">
</div>
<div class="form-group">
<label for="telefon">Telefon</label>
<input type="text" class="form-control" name="telefon">
</div>
<div class="form-group">
<label for="subiect">Subiect</label>
<input type="text" class="form-control" name="subiect">
</div>
<div class="form-group">
<label for="mesaj">Mesaj</label>
<textarea class="form-control" name="mesaj" rows="8"></textarea>
</div>
<input type="submit" name="insert" class="btn btn-theme" value="insert"></button>
</form>
结果应该是我的MySQL中的数据。但数据库没有获取任何数据,我做错了什么?
最佳答案
您有两个表单标记,一个位于另一个内。
改变这个......
<form action="insert2.php" action="post">
<form role="form">
对此...
<form action="insert2.php" action="post">
另外,请注意,您的 PHP 代码对 SQL 注入(inject)是开放的。永远不要相信用户输入。在查询中使用用户输入的数据之前,始终验证和/或转义用户输入的数据。或者更好的是,使用 prepared statements或存储过程。
更新1:
好的,很遗憾听到这不起作用。请添加以下mysqli error debugging这样我们就可以看到发生了什么。
改变这个...
$result = mysqli_query($connect,$query);
对此...
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$result = mysqli_query($connect,$query)
if (!$result)) {
printf("Errormessage: %s\n", mysqli_error($connect));
}
然后运行代码并查看是否出现任何可能对我们有帮助的错误。
更新2:
好的,尝试另一段调试。
此后...
$query = "INSERT INTO `amar` (`nume`, `email`, `telefon`, `subiect`, `mesaj`) VALUES ('$Nume','$Email','$Telefon','$Subiect','$Mesaj')";
添加此...
die($query);
保存并运行代码。
您将收到一个 SQL 查询。复制并粘贴该 SQL 查询并在数据库管理工具(例如 phpMyAdmin)中运行它。查看手动运行查询时是否添加了记录,或者是否出现任何错误。
让我们知道结果。
关于php - mysql 不更新 html/php 中的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42940652/