Merhaba dostlar.

PHP dilini kullanan pek çok arkadaşımızın, günah keçisi olan “mysql_fetch_array” hatası hakkında konuşacağım.

Yazdığımız herhangi bir PHP kodunda aldığımız hata şu şekilde oluyor:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/siteadı/domains/siteadı com/[dosyaadi].php on line [satır sayısı]

Geçenlerde bir web sitesi işi aldım. İlgili sayın müşterim benden; eski web sitesinin verilerini, satın aldıkları yeni bir hostinge taşımamı istedi. Bende ilgili verileri yeni hostinge taşıdım. Gerekli MySQL ayarlarını yaptıktan sonra siteyi görüntüledim, çalışıyor mu diye bakmak istedim. Siteye girdiğimde yukarıdakine benzer bir hata aldım. Birtakım araştırmalardan sonra sunucuların sürümleri farklı olduğundan ve yeni sunucunun sürümü daha güncel olduğundan hata verdiğini öğrendim. Verdiği hata, “Veritabanı bağlantısının gerçekleşmediğinden(miş)”.

Önceden yazdığımız bir PHP dosyasına ihtiyaç duyduğumuzda(Config gibi), “Include” yöntemiyle yazdığımız koda dahil ediyoruz. Ben şöyle bir yöntem buldum. “Include” etmek yerine, doğrudan değeri tanımlayayım, daha kesin çözüm olur. Örnek verelim.

<?PHP

// Eklenenler

$host=”localhost”;
$user = “root”;
$pass = “”;
$db_name = “private_db”;

//YUKARI KISMINI EKLİYORUZ

mysql_connect (“$host”,”$user”,”$pass”);
mysql_select_db(“$db_name”);
mysql_query(“SET NAMES ‘latin5′”);
$oku=mysql_query(“select * from referans order by id”);
while ($row=mysql_fetch_array($oku))
{
echo “<p><img src=images/referans/k_resim/$row[3]></img></p>”;
}

?>

Yaptığım iş basit. Include etmek yerine, doğrudan tanımladım değişkenleri.
Başka bir makalede görüşmek üzere, sağlıcakla kalın.

Enis Kurtay YILMAZ

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir