mysql_num_row () hatası

3 Cevap php

Bu () işlevi mysql_num_rows kullanırken ben alıyorum hata

Error: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource

İşte benim kaynak kodu:

$title = "SELECT * FROM item WHERE item.title LIKE % " .implode("% OR item.title LIKE % ", $data);

$title_result = mysql_query($title, $this->dbh);

echo mysql_num_rows($title_result);

Ben ne yapıyorum, bir web sitesi için bir arama yaratıyor. Şu anda 4 Select ifadeleri yapıyorum ve sonra ben bu sql tabloların tüm 4 benim veritabanında bulunan her şeyi toplam istiyoruz. Ben doğru mysql_num_rows düşünüyorum eğer () Select deyimi bulundu satır sayısını döndürür. Nasıl birlikte 4 farklı SQL SELECT ifadeleri eklemek olamazdı Yani teoride benim toplam aramada bulundu almak için onları toplayalım diye düşünüyordum, ben bu düşünce düzeltmek am?

Ayrıca benim test arama veritabanında.

Yardımlarınız için şimdiden teşekkür ederiz.

3 Cevap

MySQL deyim yürütmek doğru değil. Bu sadece bir önsezi olduğunu, ancak aşağıdaki ile $title değiştirdikten sonra tekrar deneyin:

$title = 'SELECT * FROM item WHERE item.title LIKE "%'.implode('%" OR item.title LIKE "%', $data).'%"';

Aşağıdaki gibi Sonra sonra, çalıştırmak:

$result = mysql_query ($title, $this->dbh) or die (mysql_error($this->dbh));

Not: Bu size $data güveniyorum üstleniyor. Bu (örneğin, kullanıcı tarafından belirlenen arama gibi) dış kaynaklardan gelirse, gerçekten mysql_real_escape_string veya hazırlanmış tablolar üzerinden sterilize etmek gerektiğini

Sorgu yürütmek için başarısız gibi görünüyor. Sen önce denemek mysql_query dönüş değerini kontrol etmek gerekir mysql_num_rows.

$title_result = mysql_query($title, $this->dbh);

if($title_result)
{
echo mysql_num_rows($title_result);
}
else
{
die(mysql_error());
}

Ne aslında durumunda oluyor mysql_query geçerli MySQL result resource olmadığı, false dönüyor ve siz onu geçerken mysql_num_rows aşağıdaki döndürür hatası:

Error: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource

Teşekkür benim tüm sorunları sabit bir sürü. Ben bunu anlamaya çalışıyorum yaklaşık 2 saat boyunca bu baktım ve ben çok sinirli almak için başlamıştı çünkü ben ne kadar müteşekkir olduğumu anlatamam. :)