我正在尝试制作一个Arduino程序和php web来使Arduino与服务器通信。但是,在一个.php文件中,我得到了他的错误,并且我不知道如何解决它。
错误提示: 错误更新记录:您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册以获取正确的语法,以在第1行的“ WHERE id = 1”附近使用
<?php
$rele = $_POST['rele'];
$modo = $_POST['modo'];
// Datos personales de la base de datos
$name = "cl60-32";
$pass = "alu32";
$server = "localhost";
$dates = "cl60-32";
$conn = new mysqli($server, $name, $pass, $dates);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error); }
$update_sql="UPDATE ACTUADORES SET rele=".$rele.", modo=".$modo." WHERE id=1";
if ($conn->query($update_sql) === TRUE) {
echo "Valores actualizados";
} else {
echo "Error updating record: " . $conn->error;
}
$conn->close();
?>
答案 0 :(得分:1)
我知道这不是OP所需要的,但这是使用PDO的版本:
$conn = new PDO("mysql:host=$server;dbname=$dates", $name, $pass);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$insertCh = $conn->prepare("UPDATE sd_posted_waoodk SET rele = :rele, modo = :modo WHERE id = '1' ");
$insertCh->bindParam(':rele', $rele, PDO::PARAM_STR);
$insertCh->bindParam(':modo', $modo, PDO::PARAM_STR);
$res = $insertCh->execute();
if($res)
echo "Valores actualizados";
} else {
echo "Error updating record";
}
对于SQL注入来说,准备好的语句更好,这就是为什么应该使用它们的原因。
编码愉快。