Ben bir PHP forum yazılımı üzerinde çalışıyorum (FluxBB) ve bir kullanıcı oldukça ilginç bir hatayla karşılaştı, o - öyle görünüyor - PHP bir dize ortasında üç nokta ekleme olduğunu.
Nedeniyle benzer bir hata Ben bu kod bir işlevi bulunmaktadır söylemek zorunda hissediyorum net ve $db
global bir değişken olduğunu buldu.
İşte (basitleştirilmiş) kodu bulunuyor:
// Get unique words from the above arrays
$unique_words = array_unique(array_merge($words['add']['post'], $words['add']['subject']));
if (!empty($unique_words))
{
$result = $db->query('SELECT id, word FROM '.$db->prefix.'search_words WHERE word IN('.implode(',', preg_replace('#^(.*)$#', '\'\1\'', $unique_words)).')', true) or error('Unable to fetch search index words', __FILE__, __LINE__, $db->error());
$word_ids = array();
while ($row = $db->fetch_row($result))
$word_ids[$row[1]] = $row[0];
Şimdi, $unique_words
(bu durumda), birden çok Fransızca kelime oluşur, ve üç nokta eklendi alır right before the comma and behind the closing quote. İşte bu hiç mantıklı implode görüşme sırasında eklenir demek gerekir.
NOT: kelimeleri kaçan halledilir.
Hata ayıklayıcı tarafından dışarı tükürmek sorgu idam edilmeden önce kaydedilmiş beri Aslında, sadece PHP, hataya neden olabilir.
Aslında destek vermeye çalışıyorum, ama ben makul bir çözüm ile gelip olamaz ...