mysql_connect () sayfa (WAMP) göstermek değil neden

2 Cevap php

Şu anda bu tüm çalışma olduğu MySQL ve PHP çalışan bir web sitesi var. Ben kendi bilgisayarınızda sitesi üzerinde çalışmak için muktedir WAMPServer yükleme denedim, ama ben sitenin düzgün çalışması için almak için çalışıyor sorunları sahip olmuştur.

HTML ve PHP dosyaları (http://localhost/index.php, vb giderek) düzgün çalışmayabilir. Ama bazı sayfaları bana bir hata olduğunu düşünmeye yol açan, "Internet Explorer bu web sayfasını görüntülenemiyor" "Bu Web sayfası mevcut değildir" gösterilecek (Chrome) veya sunucu, sayfa yok olduğu gibi, öyle tipik veya IE standart 404 sayfa "Oops! Bu bağlantı bozuk görünüyor" dispays.

Sitemde her sayfası () tüm veritabanı işlemleri işlemek için bir sınıfın bir örneğini kurmak için çağrı içerir vardır. Bu sınıf onun kurucu veritabanı bağlantısı açar. Bu anlaşılır bir hata daha sonra sayfada neden olsa yapıcı içeriği, sayfa yük sağlayacaktır dışında yorum bulduk.

Bu dahil dosyanın içeriği olan:

class dbAccess  {
    private $db;

    function __construct() {
        $this->db = mysql_connect("localhost","root","") or die ("Connection for database not found.");

        mysql_select_db("dbName", $this->db) or die ("Database not selected");
    }
    ...
}

Buradaki ne için bir not olarak. Ben oldukça yerel makineden daha sitemde veritabanını kullanmak için çalışılıyor. Benim veritabanı yazılımı (Navicat Lite) içine takın ve sitenin kesinleşmiş sürümünde düzgün çalışırken dbname, kullanıcı ve şifre işin gerçek değerleri, bu yüzden sorun bu değerlerle kendilerini olduğunu düşünüyorum, ama doğrusu yok Apache veya Wamp ile bazı ayar.

Bu siteye giriş az bir girişimi için benim Apache hata günlüğüne bir alıntıdır:

[Wed Apr 14 15:32:54 2010] [notice] Parent: child process exited with status 255 -- Restarting.
[Wed Apr 14 15:32:54 2010] [notice] Apache/2.2.11 (Win32) PHP/5.3.0 configured -- resuming normal operations
[Wed Apr 14 15:32:54 2010] [notice] Server built: Dec 10 2008 00:10:06
[Wed Apr 14 15:32:54 2010] [notice] Parent: Created child process 1756
[Wed Apr 14 15:32:55 2010] [notice] Child 1756: Child process is running
[Wed Apr 14 15:32:55 2010] [notice] Child 1756: Acquired the start mutex.
[Wed Apr 14 15:32:55 2010] [notice] Child 1756: Starting 64 worker threads.
[Wed Apr 14 15:32:55 2010] [notice] Child 1756: Starting thread to listen on port 80.

Ben çevrimiçi çözümler arıyor denedim, ama yardım için bir şey bulmak mümkün olmamıştır. Eğer bu sorunu çözmeye yardımcı olmak için daha fazla bilgiye ihtiyacınız varsa, bunun için sormaya çekinmeyin.

(Bir not daha, ben bile bu bilgisayarda Skype yok, bu yüzden bu çatışma herhangi Wamp sorunu için varsayılan yanıt gibi görünüyor bu, bir sorun olarak göremiyorum.)

[Edit: Removed entry from the error log as it was solved as an unrelated issue] [Edit: Looking through my hosts documentation, I found that all ports besides 80 and 443 (for HTTP and HTTPS) are blocked, meaning they don't allow external connections like what I was trying to do here. I've changed it to the local database, but I'm still receiving the same error. The issue is still open.]

2 Cevap

Ben de bu sorunu encoutered. Benim için çözüm kendi sınıfından mysql_connect yöntemi dışına taşımak ve sadece doğrudan aramak oldu.

Bir an için apache geçmek by-Diyelim. Rehberde / bin/php/php5.3.0 yılında, CLI SAPI (komut satırı sürümü) uygulayan bir php.exe var.

Ile bu dizindeki dosya test.php koydu

<?php
if ( !extension_loaded('mysql') ) {
    die('the mysql extension is not present');
}

echo 'phpversion=', phpversion(), "\n"; flush();
echo 'client_info=', mysql_get_client_info(), "\n"; flush();

$mysql = mysql_connect('localhost', 'root', '') or die(mysql_error());
echo "seems to be working\n"; flush();

echo 'server_info=', mysql_get_server_info($mysql), "\n"; flush();

içerik olarak. Sonra komut kabuğunu açın, dizine "go"

c:
cd c:\wamp\bin\php\php5.3.0

ve koşmak

php.exe -f test.php

Sanki bir şeyler yazdırmak gerekir

phpversion=5.3.2
client_info=mysqlnd 5.0.7-dev - 091210 - $Revision: 294543 $
seems to be working
server_info=5.1.37

(Sürümleri durumda farklı olacaktır gerçi)