PHP BENZERI ile statments hazırlanan Kombine

4 Cevap php

Herkes gibi PHP ile hazırlanmış deyimleri birleştirmek nasıl biliyor? yani

"SELECT * FROM table WHERE name LIKE %?%";

4 Cevap

% Işaretler yerine sorguda, sen parametreye atadığınız değişken gitmek gerekir.

Mysqli veya PDO kullanarak eğer ben bilmiyorum, ama PDO ile bunun gibi bir şey olurdu:

$st = $db->prepare("SELECT * FROM table WHERE name LIKE ?");
$st->execute(array('%'.$test_string.'%'));

Sen kendi sql veritabanı birleştirme operatörü kullanabilirsiniz:

# oracle
SELECT * FROM table WHERE name LIKE '%' || :param || '%'
# mysql
SELECT * from table WHERE name LIKE CONCAT('%', :param, '%')

Ben diğer veritabanları ile bildik değilim, ama onlar muhtemelen eşdeğer bir fonksiyonu / operatör var.

Sen böyle bir şey deneyebilirsiniz:

"SELECT * FROM table WHERE name LIKE CONCAT(CONCAT('%',?),'%')"

PHP mysqli kullanarak siz de ilan edilecek yeni bir parametre tanımlamak gerekir:

$stmt = mysqli_prepare($con,"SELECT * FROM table WHERE name LIKE ?");
$newParameter='%'.$query.'%';
mysqli_stmt_bind_param($stmt, "s", $newParameter);
mysqli_stmt_execute($stmt);

Bu benim için çalışıyor ..