Bir virgül php ayrılmış bir dize değerleri tırnak ekle

5 Cevap php

Ben bir virgül kullanarak birden çok değer içeren bir arama kutusu, örneğin makarna, ton balığı, yumurta

Im FULLTEXT mysql arama kullanarak ama 'Yumurta', 'tuna', 'Pasta' içine Makarna, orkinos, yumurta bırakmak için preg_replace çeşit kullanmanız gerekir

Ben arama kutusuna bu 'makarna', 'ton balığı', 'yumurta' girerseniz sonuç doğrudur.

Teşekkürler insanlar

5 Cevap

Aksi çözülebilecek sorunlar için normal ifadeler kullanmayın. Ne istediğiniz basit bir dize yedek:

$string = "'" . str_replace(",", "','", $string) . "'";

Önce dize içinde tırnak kaçış olsa (bu eğik çizgi var varsayarak, kaçış karakteri nedir bilmiyorum) olmalıdır:

$string = "'" . str_replace(array("'", ","), array("\\'", "','"), $string) . "'";

Eğer liste ile bir SQL sorgusu bina var mı? Eğer öyleyse, emin çıkan SQL düzgün de kaçtı yapmak için biraz zaman gerekir.

$myList = "pasta, tuna, eggs";

$items = preg_split("/[,\\s]+/", $myList);
$sqlItems = array();
foreach ($items as $item) {
    $sqlItems[] = "'" . mysql_real_escape_string($item) . "'";
}

// Add new list to SQL
$sql .= implode(",", $sqlItems);

Eğer değerlerinde herhangi bir virgül var mı?

Eğer değilse gibi bir şey kullanabilirsiniz:

preg_replace('/[^,]+/g', '\'\1\'', preg_replace('/\'/g', '\\\'', $text))

sizin dize implode, sonra dizi çıkan foreach ve gerekli sembolleri ekleyin

Sorun için özür dilerim ama benim kendi soru çözdük Beyler! Ive bu baktım ve onunla başlamak için tüm yanlış oldu.

Öyle ", orkinos" = "+ tuna" bir boşluk ve bir artı işareti ile, her yerine vardı

Yine de teşekkürler