Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Tidak ada data yang disediakan untuk parameter dalam pernyataan yang disiapkan

Anda hanya mengikat empat argumen, dengan string kontrol "sssd", tetapi Anda memiliki banyak parameter. Saat mengikat variabel dengan mysqli, Anda memerlukan satu karakter untuk setiap parameter, misalnya:

mysqli_stmt_bind_param($stmt, "sssdsssssssssdd", $firstname, $surname, $address, 
    $gender, $city, $province, $postalcode, $phone, $secondphone, $email, 
    $organization, $inriding, $ethnicity, $senior, $student);

(Saya berasumsi senior dan siswa adalah bilangan bulat, dan memerlukan kode "d".)

Anda tidak perlu memperlakukan variabel Anda dengan mysqli_real_escape_string() -- itulah gunanya menggunakan parameter. Jika Anda lolos juga, Anda akan mendapatkan karakter garis miring terbalik literal dalam data Anda di database.

Dan Anda tidak perlu menggunakan htmlspecialchars() dalam hal apa pun - Anda akan menggunakannya saat mengeluarkan ke HTML, bukan saat memasukkan ke database. Anda akan mendapatkan urutan literal seperti & dalam data Anda di database.

Ulangi kesalahan Anda berikutnya:

Hal ini disebabkan oleh hal berikut:

$result = mysqli_query($mysqli,$stmt);

Fungsi itu mengharapkan argumen kedua menjadi string, kueri SQL baru. Tapi Anda sudah menyiapkan kueri itu, jadi Anda memerlukan yang berikut ini:

$result = mysqli_stmt_execute($stmt);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Permintaan MySQL tidak berfungsi saat menggunakan variabel php di mana klausa

  2. MySQL - Cara membagi nilai dalam string tunggal menggunakan koma

  3. Bagaimana cara mengatur Hibernate untuk membaca/menulis ke sumber data yang berbeda?

  4. pertanyaan pembatas mysql

  5. Jalur Pembelajaran MySQL