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

Masalah pengikatan parameter Mysqli

$suquery=$dbCon->prepare("select * from Table where ? LIKE ?");

Tidak akan bekerja seperti yang diharapkan. Ini akan diterjemahkan sebagai:

SELECT * from table WHERE 'columnName' LIKE '%a%'

yang mengembalikan semua baris karena 'columnName' berisi 'a'. 'columnName' adalah string, bukan nama kolom yang sebenarnya.

Upaya kedua Anda benar, kecuali Anda memiliki tanda kutip tambahan dalam istilah tersebut. Saat menggunakan parameter, Anda tidak memerlukan tanda kutip. Solusinya adalah:

$term = "%".$_POST['searchTerm']."%";
$suquery=$dbCon->prepare("select * from Table where columnName LIKE ?");
$suquery->bind_param('s', $term);
$suquery->execute();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql - memindahkan baris dari satu tabel ke tabel lainnya

  2. Menyimpan nilai heksadesimal sebagai biner di MySQL

  3. Masukkan ke Database MYSQL jika tidak ada

  4. Google Map tidak akan menampilkan poin - XML ​​adalah null

  5. cara membuat pilihan bersarang di zend db