Böyle oldukça standart varsorunları
$hostname = '172.0.0.0';
$dbname = 'myname_mydbname';
$username = 'myname_user';
$pw = 'password';
olarak değişkenlerde kamu ağacının dışında dosyalarda veritabanları için benim giriş bilgileri depolamak neden php db değişkeninde vurgulamaktadır.
Sorun şu ki, çalışmakta olduğum bu özel barındırma, tüm veritabanlarının ve kullanıcı adlarının önüne eklenecek myname_
gerektirir. Bu dizeleri sakladığımda ve bunları bir PDO'ya ilettiğimde, myname'den sonra kullanıcı adındaki her şeyi düzeltir ve parola dizesini hep birlikte bırakır ... Eğer kullanıcı adı ve parola fonksiyonda dizgiler yerine dizge olarak koyarsam, her şey çalışır. Ben aklımın ucundayım. biri yardım edebilir mi? işte koddaki gibi.
Çalışmaz:
$this -> DB = new PDO ("mysql:host={$hostname}; dbname={$dbname}", $username, $pw);
eser: burada biriyle umuyorum şimdiden ... bana aptal hissediyorum sayesinde yapabilirsiniz
$this -> DB = new PDO ("mysql:host={$hostname};dbname={$dbname}", 'myname_user', 'password');
. -David
hata yardımcı olabilecek...
DB kolu alınamadı: SQLSTATE [28000] [1045] Access kullanıcısı 'myname' @ 'localhost' için reddedildi (şifrenizi kullanarak: NO) hiçbir kullandığınız bir "Veritabanı Kaynak adı" değil "Veritabanı Kaynağı Adı ve Kimlik Doğrulama" dize gerçektir - Ben PDO belgelerinde bulabilirsiniz
"Yeni PDO" ifadesinden hemen önce var_dump ($ kullanıcı adı); – zerkms
bu ilginç. NULL NULL. – david
$ hostname = '172.0.0.0' ; $ dbname = 'myname_mydbname'; $ username = 'myname_user'; $ pw = 'password'; – david