Hata Günlüğü MySQL bağlantı hatası olduğunu belirtiyor, ama senaryo iyi çalışır

3 Cevap php

Birincisi, ben StackOverflow şimdiye kadar aldığımız tüm yardım için teşekkürler. Ben çok şey öğrendim.

Bir kez daha, ben üzerinde aradım ilkel bir soru poz değilim, ama kesin cevap bulamıyorum. İşte veya PHP.net üzerinde.

Bu tür bu adam ne sordu gibi, ama tam olarak değil: http://stackoverflow.com/questions/288603/mysql-throwing-query-error-yet-finishing-query-just-fine-why

Ben sitemde dizin kontrol ve ben bu yeni Yönetici bölgeyi yazdı beri hataların bir demet kaydedilmiş olduğunu fark açıldığında Yani, benim errorlog balon yukarı gördüm. Ben bir şey atılmasına hata benim scripting ile açıkça ters olduğunu biliyorum, ama garip bir şey aslında script geçiyor ve ben bozmadan gereken tüm verileri çeker, olduğunu.

Günlüğü içerir:

PHP Warning: mysql_query () [function.mysql-query]: Erişim @ kullanıcı 'someuser' için reddedildi (şifrenizi kullanarak: NO) 'localhost' home / mysite / adminconsole.php / 15 hattı üzerinde

Ben çok çizgi olduğu için nereden ben kurulum benim bağlantı ... Ben başka bir yerde hiçbir sorun ile sitede bunu aynı şekilde. Yok

Bu hatadan sonra, ben bu aynı zamanda atılmış

[09-Nisan-2010 08:44:18] PHP Warning: mysql_query () [function.mysql-query]: Sunucuya bir bağlantı hattı 15 / home / mysite / adminconsole.php kurulmuş olamazdı

[09-Nisan-2010 08:44:18] PHP Warning: mysql_fetch_array (): verilen argüman hat 16 üzerinde ev / sitem / adminconsole.php / geçerli bir MySQL sonuç kaynak değil

Ben diğer çocuklar iplik okumak ne, sorun belki sorgunun içeriği nedir? Belki benim sorgu hatalı biçimlendirilmiş?

Çok teşekkürler size sağlayabilir herhangi bir rehberlik için.

-Rob

ADD: Dominic için

Dominic

session_start();
if (isset($adminusr))
{
mysql_connect("localhost","user","pw") or die(mysql_error());
mysql_select_db("my_db") or die(mysql_error());
}

else    {
header("location:admin.php");
}

LINE 14 #SETUP THE QUERIES HERE FROM SESSION INFO

LINE 15 $sql1=mysql_query("SELECT * FROM admins WHERE username='$adminusr'"); ///connecting to the admin DB

LINE 16 $result1=mysql_fetch_array($sql1);

### OLD BAR INFO QUERY
$sql2=mysql_query("SELECT * FROM bars WHERE bar_id='$result1[bar_id]'"); ///connecting to the old bars DB
$result2=mysql_fetch_array($sql2);

###LIQUOR QUERIES
$sql3=mysql_query("SELECT * FROM inv_beer WHERE bar_id='$result1[bar_id]'"); ///connecting to the BEER INVENTORY DB
$beer_results=mysql_fetch_array($sql3);

3 Cevap

$ Adminusr ilk defa ayarlı değilse, hiçbir bağlantı veritabanına yapılır. Başlık çağrısından sonra bir çıkış () çağrısını koydu.

Başlık denir sonra, komut dosyası çalışmaya devam eder. Eğer günlükleri hataları olsun ama siteyi kullanırken onları fark yok neden budur.

Ne sorun olabilir MySQL kullanıcı başına yalnızca tek bir bağlantı sağlar ve erişim engellendi neden olan birden fazla bağlanmaya çalışıyor olmasıdır. Zaten bir bağlantısı kuruldu, çünkü o zaman sizin sorgular ince çalıştırın. Kodu olmadan olsa bu sadece bir tahmin.

Bu sorgular ZORUNDASINIZ, o) (bir ekleme ya da öl; böylece gibi kodu:

$sql1=mysql_query("SELECT * FROM admins WHERE username='$adminusr'") or die('Critical error  on line #'. __LINE__ .'while trying to SELECT from admins table:<br>'. mysql_error());

Yapmanız çalıştığınız ne hata tam olarak nerede olduğunu biliyorum yolu, ve MySQL hata açıklaması.

PS: Eğer yukarıdaki gibi bir dize birleştirme kullanıyorsanız, ben emin enjeksiyonu önlemek için veri kaçan SQL umuyoruz.

PPS: Ben daha az bellek kullanır gibi, vb tuşları 0,1,2 doldurmamak zaman ya da bellek israf etmez, çünkü sen () yerine _array of () mysql_fetch_assoc kullanmanızı öneririz