【发布时间】:2017-08-07 12:10:02
【问题描述】:
我正在制作一个表单,您可以在其中从 phpmyadmin 插入、更新和删除数据库 welkom 中的数据。这是我的文件Formmenu.php。 PS:此代码包含荷兰语。
PHP
<?php
if ( ! empty($_POST))
{
$mysqli = new mysqli('localhost','root','','welkom');
if ($mysqli ->connect_error)
{
die('connect error: '. $mysqli->connect_errno . ': ' . $mysqli->connect_error);
}
if (isset($_POST['insert'])) {
$sql = "INSERT INTO abdijbieren (naam, prijs) VALUES ('{$mysqli->real_escape_string($_POST['naam'])}','{$mysqli->real_escape_string($_POST['prijs'])}');";
} else if (isset($_POST['delete'])) {
$sql = "DELETE FROM abdijbieren WHERE naam ='{$mysqli->real_escape_string($_POST['naam'])}';";
}
else if (isset($_POST['update'])) {
$sql = "UPDATE abdijbieren SET id='{$mysqli->real_escape_string($_POST['id'])}' WHERE naam='{$mysqli->real_escape_string($_POST['naam'])}'; UPDATE abdijbieren SET prijs='{$mysqli->real_escape_string($_POST['prijs'])}' WHERE naam='{$mysqli->real_escape_string($_POST['naam'])}';";
}
else {
/*nothing*/
}
$insert = $mysqli->query($sql);
if ($insert)
{
echo "Success! Keer terug naar de volgende pagina om te updaten.";
}else
{
die("Error: {$mysqli->errno} : {$mysqli->error}");
}
$mysqli->close();
}
?>
表格
<form method="post" action="">
<input name="naam" type="text" placeholder="naam drank" required><br>
<input name="prijs" type="text" placeholder="prijs" required><br>
<input name="id" type="text" placeholder="tracking number*"><br><br>
<input type="submit" name="insert" value="insert">
<input type="submit" name="delete" value="delete">
<input type="submit" name="update" value="update"><br>
*= niet nodig bij "insert".
</form>
这就是我所关注的:
$sql = "UPDATE abdijbieren SET id='{$mysqli->real_escape_string($_POST['id'])}' WHERE naam='{$mysqli->real_escape_string($_POST['naam'])}'; UPDATE abdijbieren SET prijs='{$mysqli->real_escape_string($_POST['prijs'])}' WHERE naam='{$mysqli->real_escape_string($_POST['naam'])}';";
当我尝试提交表单后收到错误 #1064 的代码时。错误呼应;
错误:1064:您的 SQL 语法有错误;检查手册 对应于正确语法的 MariaDB 服务器版本 在 'UPDATE abdijbieren SET prijs='5.00 EUR' WHERE id='9' 附近使用; 在第 2 行更新 a'
我不确定这是拼写错误还是 real_escape_string。我试着用这个寻找解决方案:
第二个链接的问题仍未解决。我检查了我的代码,它看起来不错,但是在收到错误 #1064 后,我对代码感到困惑。我需要有关此问题的帮助。
谢谢。
【问题讨论】:
-
如果您必须在一次执行中执行此操作,请使用
multi_query,但您也可以在一次查询中更新这两个字段..
标签: php forms mysqli phpmyadmin