【发布时间】:2017-10-24 01:04:20
【问题描述】:
我正在尝试从我的表单向 sql 插入数据,但数据没有进入我的 sql 表。我也没有收到错误。这是我所拥有的:
<?php
mysqli_select_db($connect, "prekes");
if(isset($_POST['submit']))
{
$pavad = $_POST['pavad'];
$Gamintojas = $_POST['Gamintojas'];
$Spalva = $_POST['Spalva'];
$Kiekis = $_POST['Kiekis'];
$Blizgumas = $_POST['Blizgumas'];
$Kaina = $_POST['Kaina'];
$Kategorija = $_POST['Kategorija'];
$sandely = $_POST['sandely'];
$query="
INSERT INTO prekes
( pavad, Gamintojas, Spalva, Kiekis
, Blizgumas, Kaina, Kategorija, sandely)
VALUES
( '$pavad', '$Gamintojas', '$Spalva', '$Kiekis'
, '$Blizgumas', '$Kaina', '$Kategorija', '$sandely')
";
if(mysqli_query($connect,$query))
{
echo "prideta";
}else {
echo"nope";
}
}
?>
我还将我的 main.php 代码放在我放置连接和表的位置
</table>
<div class="prekiu_lentele">
<div class="lent">
<table class="lenetele_prekems" align="center">
<form action="insert.php" method="post">
<form action="update.php" method="get">
<tr>
<th>Pavadinimas:<input type="text" name="pavad"></tr>
<th>Gamintojas:<input type="text" name="Gamintojas"></tr>
<th>Spalva:<input type="text" name="Spalva"></tr>
<th>Kiekis:
<select name="Kiekis">
<option value="1l">1 l</option>
<option value="2l">2 l</option>
<option value="5l">5 l</option>
<option value="10l">10 l</option>
</select></tr>
</tr>
<tr>
<th>Blizgumas:<input type="text" name="Blizgumas"></tr>
<th>Kaina:<input type="text" name="Kaina"></tr>
<th>Kategorija:<input type="text" name="Kategorija"></tr>
<th>Kiekis sandelyje:<input type="text" name="sandely"></tr>
</tr>
<tr>
<th ><input type="submit"; style="width: 300px"; value="Insert" name="submit" ></th>
</tr>
</form>
【问题讨论】:
-
您在代码中混淆了
mysql和mysqli。除此之外,最好使用准备好的语句而不是在查询字符串中嵌入变量,尤其是在您不验证它们的情况下。这是一个巨大的安全漏洞,称为 SQL 注入。 -
是的,我解决了这个问题,但我仍然看不到我的错误,为什么我的数据不会进入 sql。
-
用您实际使用的代码更新您的问题
-
我更新了 if(mysql_query($query)) -> if(mysqli_query($query))这一行
-
mysqli_query()需要 2 个参数而不是 1