我制作了一个小系统,应该更新某些东西。它包括一个表格。
if(isset($_GET['bevestiging'])) {
$kamerurl= $_POST['kamer'];
mysql_query("UPDATE volg_dj_aan_uit SET (aan_of_uit,kamerurl) VALUES ('aanzetten','$kamerurl')");
echo '<b>Geupdate!!</b>
<br>
Het volgen is aangezet!
<br>
<a href="index.php?p=tools_volg_kamer" target="_self">Verder »</a>';
}
检查&#34; bevestiging&#34;设置(即),然后将来自$ _POST [&#39; kamer&#39;]的发布网址转移到$ kamerurl,但它是空的结果。它还设置了&#34; aanzetten&#34;到0而不是&#34; aanzetten&#34;这是PHP中的表单:
else {
$sql = mysql_query("SELECT * FROM volg_dj_aan_uit");
$row = mysql_fetch_array($sql);
if($row['aan_of_uit'] == "uitzetten") {
$aanofuit = "aanzetten";
} else if($row['aan_of_uit'] == "aanzetten") {
$aanofuit = "uitzetten";
}
echo 'Vul de kamerurl in: <form method="post" action="index.php?p=tools_volg_kamer&bevestiging=JA"><input type="text" id="kamer" name="kamer"><br>
Weet je zeker dat je gevolgt wilt worden?
<br>
<input type="submit"id="Submit"name="Submit" value="Ja">
</form>';
echo '
<a href="index.php?p=tools_volg_kamer" target="_self">Nee</a> | <a href="index.php?p=tools_volg_kamer_'. $aanofuit .'" target="_self">Volgen '. $aanofuit .'</a>';
}
这使我在数据库中得到一个空结果。那么我怎么能以一种正确的方式解决这个问题呢,它会形成一个发送&#34; kamerurl&#34; to tools_volg_kamer&amp; bevestiging = ja并将其设置在数据库中?
答案 0 :(得分:1)
好的,这是UPDATE
和INSERT
之间的区别。
UPDATE
仅编辑该行,而INSERT
(我认为您需要)会在表格中添加新行。
INSERT INTO volg_dj_aan_uit (aan_of_uit,kamerurl)
VALUES ('aanzetten','$kamerurl')
UPDATE
语法
UPDATE volg_dj_aan_uit
SET aan_of_uit = 'aanzetten',
kamerurl = '$kamerurl';
作为旁注,如果值( s )来自外部,则查询容易被SQL Injection
攻击。请查看下面的文章,了解如何防止它。通过使用PreparedStatements,您可以摆脱在值周围使用单引号。