【发布时间】:2022-01-12 13:10:04
【问题描述】:
由于某种奇怪的原因,数据库没有更新,我可以获得正确的数据(我检查过),但是当我单击提交时数据库没有更新。有没有人可以看看有没有遗漏? 注意:“----”只是出于安全原因!
<?php
$host = "sql308.-----.com";
$dbUsername = "----_3041----";
$dbPassword = "-----------";
$dbName = "----_3041----_phpmysqli";
$conn = mysqli_connect($host, $dbUsername, $dbPassword, $dbName);
// Check connection
if ($conn-> connect_error) {
die("Connection échouée!".$conn-> connect_error);
}
$rn = $_GET['rn'];
$dt = $_GET['dt'];
$to = $_GET['to'];
$rk = $_GET['rk'];
if(isset($_POST['edit'])) {
$rn = $_POST['rn'];
$dt = $_POST['date'];
$to = $_POST["total"];
$rk = $_POST['remarques'];
$sql = "UPDATE `datab1` SET
`date` = '$dt',
`total` = '$to',
`remarques` = '$rk'
WHERE `datab1`.`id` = '$rn'";
$result = mysqli_query($conn, $sql);
if($result == 1) {
header('location:table.php');
}
else {
die(mysqli_error($conn));
}
}
?>
【问题讨论】:
-
你不需要指定
datab1.id只需使用id即可。 -
请学习如何准备 statment,您可以使用 sql 注入。
-
为什么你尝试使用 GET 然后使用 POST 创建变量?
-
(可能)旁注:不要使用字符串插值或连接将值获取到 SQL 查询中。这很容易出错,并且可能使您的程序容易受到 SQL 注入攻击。使用参数化查询。见"How to include a PHP variable inside a MySQL statement" 和"How can I prevent SQL injection in PHP?"。
-
你得到的是骰子还是标题,还是什么都没有?您可能需要在您的
if(isset($_POST['edit'])) {中添加一个 else,以防它根本不在该块中。
标签: php mysql sql sql-update