PHP ve MySQL iletişim kurmuyor


9

PHP kurulumum ve MySQL kurulumumun ulaşamadığı sonucuna vardım; İçerik için MySQL kullanan ilk web sayfamı yapmaya çalışıyorum, ancak iki gün sonra man sayfaları, çevrimiçi belgeler ve düzinelerce öğretici, PHP / MySQL parçasının çalışmasını sağlayamıyorum. Apache'yi çalıştıran ve web sayfalarımı barındıran yerleşik bir ev web sunucum var (tek yönetici / kullanıcıyım). Yüklü MySQL var ve Terminal aracılığıyla bir veritabanı oluşturmak ve sorgulamak mümkün. PHP yüklü ve belgeye metin yazdırmak için yankı kullanabilirsiniz. Ancak MySQL ile çalıştığımda her şey değişiyor…

Başlangıç ​​öğelerini içeren bir sayfam var. MySQL'e erişmek için birkaç sabit kodlu HTML paragrafı ve ardından PHP kodu içerir. Sayfayı ilk yüklediğimde, ortaya çıkan tek şey boş bir sayfaydı. Ben PHP bölümünü yorum ve düz HTML hala işe yaradığını onaylamak için yeniden yükledi, hangi yaptı. Bu nedenle, PHP'nin bir kısmı sayfanın herhangi bir şekilde yüklenmesini engelliyordu.

Kodumda sorun gidermeye başlamak için, birkaç farklı öğreticiden uyarlanan sunucu bağlantısı için aşağıdaki kod haricinde tüm PHP kodlarını açıkladım:

<?
echo("<p>PHP is working</p>"); 
$ses = mysql_connect("localhost","username","password");
if(!$ses){
 echo("<p>Connection to content server failed.</p>");
 exit();
}
echo("<p>Database Connected</p>");
?>

Sayfa yüklendiğinde, başlangıç ​​HTML'si “PHP çalışıyor” yazan bir paragrafa ek olarak yüklenir, ancak hata veya başarı mesajı da görünmez. If yapısı koddan kaldırdım - böylece sadece iki echos ve mysql_connect kaldı - ve aynı sonucu aldı.

Görünüşe göre mysql_connect özelliği, sunucu çalıştırıldığında kodu yüklemeyi durdurmasına neden oluyor, ancak nasıl düzeltebileceğime dair fikirlerim yok. Kayıt için: php.ini dosyasını “connection = msql.so” satırını içerecek şekilde değiştirdim ve MySQL 5.5, Apache 2.2.22, PHP 5.3.10, Ubuntu 12.04 kullanıyorum. Ayrıca, hem yönlendiricim hem de modemim 3306 numaralı bağlantı noktasını sunucuya iletecek şekilde yapılandırıldı - bunun nasıl gerekli olması gerektiğini bilmiyorum - ve MySQL kullanıcı adı ve şifrem üç kez kontrol edildi ve başarıyla kullandığımla aynı Terminalde.

Neyi kaçırıyorum?


1
'Kullanıcı adı' ve parolayı doğru kullanıcı adı (muhtemelen kök) ve parola ile değiştirin
Tachyons

2
Evet, ben yaptım. Kullanıcı adını ve şifreyi foruma atmanın iyi bir fikir olacağını düşünmemiştim. Sonunda söylediğim gibi, Terminal aracılığıyla veritabanını başarıyla oluşturmak, erişmek ve düzenlemek için kullandığımla eşleştiğinden emin olmak için kullanıcı adını ve şifreyi ÇOK kez kontrol ettim.
Casey Hungler

Ayrıca 127.0.0.1 ile yerel ana sunucunun yanı sıra sunucunun yerel ve global IP adreslerini değiştirmeyi denedim, ancak hiçbiri de bir fark yaratmadı.
Casey Hungler

1
Yükledin mi php5-mysql?
laurent

Eminim, ama tekrar deneyeceğim.
Casey Hungler

Yanıtlar:


9

Her şey yolunda görünüyor, bu yüzden kurulumunuzun tamamlanmadığını düşünüyorum. Mysql ve php'nin iletişim kurması için php5-mysql paketi yüklemeniz gerekir :

sudo apt-get install php5-mysql

Not: Bu işe yaramadan önce bilgisayarı yeniden başlatmam gerekiyordu.
user124384

3

php5-mysqlPaketi yükleyin ve mysql_connect yerine mysqli_connect kullanın


Teşekkürler, başka biri de bunu önerdi ve işe yaradı! Yine de merak ediyorum, aramalarımda mysqli (ve PDO da genellikle oradaydı) ile ilgili şeyler çalıştırdım, nedir? Normal mysql'den daha iyi yapan nedir?
Casey Hungler

MySQLi geliştirilmiş bir versiyonudur.
baykuş

Bildiğim kadarıyla, php ekibi tarafından tavsiye edildiği gibi mysqli kullanmalısınız ve mysql_connect artık geliştirme değil, sadece bakım. Ben mysql_connect örneğin ve diğer birçok şey için hazırlanmış ifadeleri kabul etmez düşünüyorum.
laurent


1
sudo apt-get install php5-mysql

Tomcat sürümünü bulun /etc/init.d/. Tomcat7 adında bir dosya olmalı, dolayısıyla 7 sürüm

sudo service tomcat7 stop 
sudo service tomcat7 start

Bazen makineyi yeniden başlatmak diğer sorunları sıralamaya yardımcı olur. Yeniden başlattıktan sonra çalıştırmayı unutmayın:

sudo service tomcat7 start 
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.