在我的PHP脚本中,我将数据保存到数据库(hash,sala)。 如果sala存在,我想更新散列(在同一行中更新散列)。
如何更改我的脚本?
$sala = $_POST['sala'];
$servername = "";
$username = "";
$password = "";
$dbname = "";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} else{
echo "Polaczono";
}
$sql = "INSERT INTO instructions (hash, sala)
VALUES ('$newfilename', '$sala')";
if ($conn->query($sql) === TRUE) {
echo "Dane dodano prawidłowo";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
答案 0 :(得分:0)
如果密钥已存在,您可以使用INSERT ... ON DUPLICATE KEY
语法更新值,例如:
INSERT INTO instructions (hash, sala) VALUES("A", "B") ON DUPLICATE KEY UPDATE
hash = "C";
Here是文档。
答案 1 :(得分:0)
请改用此查询:
$sql = "INSERT INTO instructions (hash, sala)
VALUES ('$newfilename', '$sala')
ON DUPLICATE KEY UPDATE hash='$newfilename'";
您还需要在列sala
上创建 UNIQUE KEY 。
并且不要忘记之前被告知的SQL注入攻击。