Php SQL语法错误;请查看与MySQL服务器版本对应的手册,以了解在“WHERE”附近使用的正确语法
-当我用新值输入'nama_pemain'或klub_pemain值来更新数据库'dbartt'时。 -它显示以下错误。请修改我的密码 -错误:您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以了解在第1行的“WHERE id_artt=”11:22:33:44:55:66附近使用的正确语法Php SQL语法错误;请查看与MySQL服务器版本对应的手册,以了解在“WHERE”附近使用的正确语法,php,mysql,Php,Mysql,-当我用新值输入'nama_pemain'或klub_pemain值来更新数据库'dbartt'时。 -它显示以下错误。请修改我的密码 -错误:您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以了解在第1行的“WHERE id_artt=”11:22:33:44:55:66附近使用的正确语法 <!doctype html> <html> <head> <title>Pengubahan Data Pemain&
<!doctype html>
<html>
<head>
<title>Pengubahan Data Pemain</title>
<style>
label {
float: left;
width: 100px;
}
</style>
</head>
<body>
<h1>Pengubahan Data Pemain</h1>
<?php
$kunci = isset($_GET["kunci"]) ?
trim($_GET["kunci"]) : "";
$pesan = isset($_GET["pesan"]) ?
trim($_GET["pesan"]) : "";
if ($kunci !== "") {
// Lakukan koneksi database
$koneksi = new mysqli("localhost", "root",
"syamsunisramani", "dbartt");
if (!$koneksi)
die("Koneksi gagal");
// Proses SQL
$sql = "SELECT * FROM pemain WHERE id_artt = '" .
$kunci . "';";
if ($hasil = $koneksi->query($sql))
if ($hasil->num_rows > 0) {
print("<form action=\"pemsimp.php\" method=\"post\">");
print("<fieldset>");
while ($baris = $hasil->fetch_array()) {
print("<p>\n");
print("<label>ID ARTT:</label>\n");
print("<input type=\"hidden\" name=\"id-artt\"");
print(" value=\"$kunci\">\n");
print("<input type=\"text\" name=\"kunci\"");
print(" value=\"$kunci\">\n");
print("</p>\n");
print("<p>\n");
print("<label>Nama Pemain:</label>\n");
print("<input type=\"text\" name=\"nama-pemain\"");
print(" value=\"$baris[1]\">\n");
print("</p>\n");
print("<p>\n");
print("<label>Klub Pemain:</label>\n");
print("<input type=\"text\" name=\"klub-pemain\"");
print(" value=\"$baris[2]\">\n");
print("</p>\n");
}
print("<input type=\"submit\" value=\"Simpan\">\n");
print("</fieldset>\n");
print("</form>\n");
}
else {
print("Data tidak ditemukan<br>");
$pesan = "";
}
else {
print("Gagal memproses. Kesalahan: " .
$koneksi->error . "<br>");
$pesan = "";
}
// Tutup koneksi
$koneksi->close();
}
else
print("Salah pemakaian");
// Tampilkan pesan kesalahan
if ($pesan !== FALSE)
print($pesan);
?>
</body>
</html>
//pemsimp.php
<?php
$id_artt = isset($_POST["id-artt"]) ?
trim($_POST["id-artt"]) : "";
$nama_pemain = $_POST["nama-pemain"];
$klub_pemain = $_POST["klub-pemain"];
if (empty($id_artt)) {
die("Salah pemanggilan");
}
// Lakukan koneksi database
$koneksi = new mysqli("localhost", "root",
"syamsunisramani", "dbartt");
if (!$koneksi)
die("Koneksi gagal");
// Proses SQL
$sql = "UPDATE pemain SET " .
"nama_pemain = '$nama_pemain', " .
"klub_pemain = '$klub_pemain', " .
"WHERE id_artt = '" . $id_artt . "';";
$pesan = "";
if ($hasil = $koneksi->query($sql))
$pesan = "Data pemain '$nama_pemain' telah disimpan";
else
$pesan = "Gagal menyimpan. Kesalahan: " . $koneksi->error;
// Tutup koneksi
$koneksi->close();
// Redirection
header("location: ubahpem.php?kunci=$id_artt&pesan=$pesan");
?>
对此,
$sql = "SELECT * FROM pemain WHERE id_artt = '" . $kunci . "';";
有几个错误,我发现了一个额外的“,”和一个“;”我认为这可能是造成问题的原因 像这样替换查询代码
$sql = "SELECT * FROM pemain WHERE id_artt = '" . $kunci . "'";
另一件事是确保'id_artt'列的类型的格式可以接受11:22:33:44:55:66之类的值,您的where条件应该是这样的
$sql=从pemain中选择*,其中id_artt='.$kunci'
你可以这样写
$sql = "UPDATE pemain SET " .
"nama_pemain = '$nama_pemain', " .
"klub_pemain = '$klub_pemain' " .
"WHERE id_artt = '" . $id_artt . "'";
倒数第二个分号不是必需的,但我喜欢包含它,这样我就可以将echo复制并粘贴到MySQL CLI中进行测试。如果我们确定它打开了,/逗号符号。因为根据续订权限请求,在此之前不能有逗号,只有在仍有数据字段需要更改时才使用逗号。以下是正确的脚本:
$sql = "
UPDATE pemain
SET nama_pemain = '$nama_pemain'
, klub_pemain = '$klub_pemain'
WHERE id_artt = $id_artt;
";
with heredoc query
$sql = <<<SQL
UPDATE pemain
SET nama_pemain = '$nama_pemain'
, klub_pemain = '$klub_pemain'
WHERE id_artt = $id_artt
SQL;
或
太多了,逗号。而且,这种“停止-开始”编码的做法太难看了。解释一下你在这里做的事情会很有帮助。
"UPDATE pemain SET " .
"nama_pemain = '$nama_pemain', " .
"klub_pemain = '$klub_pemain'" .
"WHERE id_artt = '" . $id_artt . "';";
"UPDATE pemain SET nama_pemain = '$nama_pemain', klub_pemain = '$klub_pemain' WHERE id_artt = '$id_artt'";