[ad_1]
<?php include 'connect.php'; $id = $_GET['updateid']; if (isset($_POST['submit'])) { $name = $_POST['name']; $email = $_POST['email']; $phone = $_POST['phone']; $password = $_POST['password']; $sql = "UPDATE `personal info` SET id=$id, name='$name', email='$email', phone='$phone', password='$password' WHERE id=$id"; $result = mysqli_query($con, $sql); if ($result) { echo "updated successfully"; // header('location:display.php'); } else { die(mysqli_error($con)); } } ?>
Apa yang saya coba:
Saya mencoba yang ini tetapi juga mengatakan “Anda memiliki kesalahan dalam sintaks SQL Anda; periksa manual yang sesuai dengan versi server MariaDB Anda untuk sintaks yang tepat untuk digunakan di dekat ” pada baris 1″ tidak tahu apa yang harus dilakukan
<?php include 'connect.php'; $id = $_GET['updateid']; if (isset($_POST['submit'])) { $name = $_POST['name']; $email = $_POST['email']; $phone = $_POST['phone']; $password = $_POST['password']; $sql = "UPDATE `personal info` SET Name='$name', Email='$email', Phone='$phone', assword='$password' WHERE id=$id"; $result = mysqli_query($con, $sql); if ($result) { echo "updated successfully"; // header('location:display.php'); } else { die(mysqli_error($con)); } } ?>
Solusi 1
Jangan lakukan seperti itu! Jangan pernah menggabungkan string untuk membuat perintah SQL. Ini membuat Anda terbuka lebar terhadap serangan SQL Injection yang tidak disengaja atau disengaja yang dapat menghancurkan seluruh database Anda. Selalu gunakan kueri berparameter sebagai gantinya.
Saat Anda menggabungkan string, Anda menimbulkan masalah karena SQL menerima perintah seperti:
SELECT * FROM MyTable WHERE StreetAddress = 'Baker's Wood'
Kutipan yang ditambahkan pengguna mengakhiri string sejauh menyangkut SQL dan Anda mendapatkan masalah. Tapi itu bisa lebih buruk. Jika saya datang dan mengetik ini: “x’;DROP TABLE MyTable;–” Kemudian SQL menerima perintah yang sangat berbeda:
SELECT * FROM MyTable WHERE StreetAddress = 'x';DROP TABLE MyTable;--'
SQL mana yang dilihat sebagai tiga perintah terpisah:
SELECT * FROM MyTable WHERE StreetAddress = 'x';
SELECT yang benar-benar valid
DROP TABLE MyTable;
Perintah “hapus tabel” yang valid
--'
Dan yang lainnya adalah komentar.
Begitu pula: memilih baris yang cocok, menghapus tabel dari DB, dan mengabaikan yang lainnya.
Jadi SELALU gunakan kueri berparameter! Atau bersiaplah untuk sering memulihkan DB Anda dari cadangan. Anda melakukan backup secara teratur, bukan?
PHP memudahkan untuk memasukkan parameter dengan kueri: PHP: pg_query_params – Panduan[^]
[ad_2]
コメント