XAMMP Localhostta çalışan kodların Sunucuda çalışmama sorunu
Arkadaşlar merhaba. Projemi localhost üzerinden çalışıp yapıyorum fakat şöyle bir problem var. Localde çalışan kodlar sunucuya geçince çalışmıyor. Host sahibi ile iletişime geçtim localhost phpmyadmin sürümü mariadb olduğu için problem bundan dolayı olabilir dedi. Sorunu nasıl çözebilirim ?
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (8)
kısaca şöyle anlatayım. Şuan zaten demo sistemi üzerinde çalısıyorum. Bi kurumsal website içi panel hazırladım localde sorun yok.
insert into tablo (veriler) values (????)
şeklinde girdileri kaydetme kodlarını yazıyorum. Her kısmı teker teker denediğimde bir kısım çalısıyor yani kayıt ya da değişim yapıyor bir kısmı ise yapmıyor. Kod tabanı aynı kod. Sorun artık db ile alakalı gibime geliyor.
'''
<?php
try{
$db=new PDO("mysql:host=localhost;dbname=denemeler;",'root','123456');
$db->query("SET NAMES utf8");
// $db=new PDO("mysql:host=localhost;dbname=database name",'database username','database password')
// echo "Veritabanı Baglantısı Başarılı";
}
catch (PDOException $e)
{
echo $e->getMessage();
}
?>
db baglantım bu şekildedir. çok karışık bi iş oldu. Pc bozulduğu için telden yazıyorum.
abi kodlar hata vermiyor. kodlar çalışıyor fakat olay şu. aynı kodlar locslhosta veriyi dbye kaydederken sunucuya kaydetmiyor. php sürümleri aynı tek fark localhost mariadb sunucu mysql destekliyor.
Sorun sadece veritabanı türüyse kodlarınızdaki veritabanı bağlantı komutlarını düzenlemeniz gerekir.
Mesela veritabanına bağlanmak için hangi komutları kullandığınızı (özel verilerinizi değiştirerek) paylaşırsanız bunları nasıl MySQL'e göre düzeltebileceğinizi söyleyebiliriz.
Tabi sunucuda MySQL'inizin tüm tablolarıyla birlikte hazır bulunduğunu varsayıyorum.
Ama kodunuz veritabanına bağlanamıyor bile olsa "bağlanamıyorum" diye hata vermesi gerekir. Siz hiç hata da vermiyor diyorsunuz. Yani bir insert işlemi sırasında veritabanıyla bağlantı kuramadıysa bir hata dönüyor olmalı mesela.
localhost tan php.ini deki hangi eklentiler aktif ona bak
sonra cpanel den php sürümünde o eklentiler aktif mi ona bak bence.
sonra atıyorum ekelme yaparken
insert into tablo (veriler) values (????)
gibi mi yoksa
insert into tablo veri=?, veri2=?
gibi mi oda fark edebiliyor sunucu bazen birini desteklemiyor da olabilr.
daha önce karşılaştığım sorunlar ama genelde eklentilerden dolayı hata meydana geliyor.
farazi bir örnek vereyim
localhost da GD kütüphanesi verken cpanel de yokise aktif değil ise hatalar alırsın
sunucudaki php sürümünüzle localhost'taki php sürümünüz aynı veya yakın olmalı.
PHP sürümünüzü kolayca öğrenmek için bir PHP dosyası oluşturun ve içine <?php phpinfo();
yazıp kaydedin.
Bu dosyayı hem localhost'ta hem sunucuda tarayıcıdan açın ve iki sayfa arasındaki versiyon farklarını bulun.
MariaDB demişsiniz. Sorun veritabanı sürümlerinizden kaynaklanıyor da olabilir elbet. Locahost'ta bağlandığınız veritabanıyla sunucudan bağlandığınız veritabanı arasında versiyon farklılığı varsa bazı SQL komutları birinde çalışıp birinde çalışmıyor olabilir.
PHP'nin ne hata verdiği de önemli. Görünen hatayı yazarsanız daha detaylı cevap vermek mümkün olabilir.
Eğer sunucu hataları gösteremiyorsa, erişmeye çalıştığınız PHP sayfasının başına şu kodları yazmayı deneyebilirsiniz:
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
Böylece sunucuda ayrıca bir ayar yapılmamışsa sayfanız hatayı gösterecek şekilde sonuç gösterecektir.