• 29-12-2012, 19:38:13
    #1
    Herkese merhaba,

    Geliştirdiğim bir program için biri localhost ta çalışan mysql, diğeri remote host ta çalışan mysql veritabanına bağlanmak istiyorum.

    PHP 5.2 ile çalışırken sorunsuz bağlanabiliyordum, PHP versiyonu bazı gereksinimlerden 5.3.13 e yükseltmek zorunda kaldım.

    Bu kez şu hatayı almaya başladım: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in index.php on line 15

    Araştırma yapınca php nin 5.2 üstü versiyonlarında güvenlik için değişiklik yapıldığından bahsedilmiş. Ve üst versiyonlarında php hangi veritabanına bağlanacağını şaşırdığından bu hatayı verdiğini yazmışlar.

    Bu kez sorgularımda hangi veritabanından çekeceksem onu belirtmeye başladım. Ancak yine hata alıyorum.

    Araştırırken şöyle bir şey buldum. Remote hosttaki mysql root şifresini silip yeniden verin diyor.
    If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file in

    Bu nasıl yapılır bileniniz var mı?
  • 29-12-2012, 20:59:16
    #2
    mysql sorgun yanlıs dönüyor ben bu hatayı aldığımda querylerimi check ediyorum ya sytnax hatası oluyor yada baska bir yerin baska bir şeyini alıyorum bunları check edebilir misin?
  • 30-12-2012, 00:07:58
    #3
    mysql_* fonksiyonlarının kullanılması zaten önerilmiyorken bir de çoklu veritabanı için bunu yapmanız bence hiç doğru değil. PDO veya mysqli kullanın.

    mysqli
    $db1 = new mysqli('localhost', 'kullanici-adi', 'sifre', 'veritabani');
    $db2 = new mysqli('localhost', 'kullanici-adi', 'sifre', 'veritabani');
    
    $sorgu = $db1->query();
    
    while ($satir = $sorgu->fetch_assoc())
    {
    }
  • 30-12-2012, 18:18:51
    #4
    x1=mysql_select_db('dbadi', $baglanti);
    x2=mysql_select_db('dbadi', $baglanti2);
    $b1=mysql_query("sql query ni yaz",$x1);
    $b2=mysql_query("sql query ni yaz",$x2);
    vb.
  • 31-12-2012, 00:22:01
    #5
    önce mysqli olarak deniyorum.
    Localhost bağlantısında sorun yok. çalıştı...
    db2 yi remote olarak bağladığımda bana şu hatayı veriyor.
    "mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password'). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file"

    my.cnf dosyasını değiştirmem söyleniyor. önceki mysql_ bağlantısı yaptığımda da aynı sorunu vermişti. php 5.2 de bu hatayı vermiyordu.

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 00:22:01 -->-> Daha önceki mesaj 00:14:29 --

    Update:
    HeidiSQL ile remote hosta bağlandım ve şu sql komutunu kullandım.
    Alıntı
    SET SESSION old_passwords=FALSE;
    SET PASSWORD = PASSWORD('[your password]');
    şu anda hata almıyorum. denemeye devam
  • 31-12-2012, 17:45:55
    #6
    Süper! mysql_ komutları çok daha zahmetliymiş. mysqli süper...
    karakter sorununu da şu şekilde çözdüm
    $db1->query("SET NAMES 'utf8'");
    $db1->query("SET CHARACTER SET utf8");
    $db1->query("SET COLLATION_CONNECTION = 'utf8_general_ci'");

    yardımlarınız için teşekkürler.