Php fonksiyon içerisindeyken dışarıda yazılan veritabanına(mysqli) bağlanmıyor

Başlatan bijehr, 29 Aralık 2014 - 21:36:34

« önceki - sonraki »

0 Üyeler ve 3 Ziyaretçi konuyu incelemekte.

bijehr

connection'ı fonksiyon dışında yazdığım zaman, bağlanmıyor , bunu halledebilmemin bir yolu mevcut mu ?

function YazarIndexAl($a){
$connection = new mysqli('localhost', 'root', 'sifre', 'veritabani') ;
$connection->set_charset("utf8");

$query = mysqli_query($connection,"SELECT * FROM veritabanii WHERE yazID = $a");

      while($YazarIndexAl = mysqli_fetch_array($query)) {
        echo "selam";
        $YaziIdYazarIndexAl = $YazarIndexAl['yazID'];
        $YazarIdYazarIndexAl = $YazarIndexAl['yazarID'];
        $YaziLinkYazarIndexAl = $YazarIndexAl['yazLINK'];
        $YaziAciklamaYazarIndexAl = $YazarIndexAl['yazACIKLAMA'];
        $YaziBaslikYazarIndexAl = $YazarIndexAl['yazBASLIK'];
        $YaziYaziYazarIndexAl = $YazarIndexAl['yazYAZ'];
        $YaziTarihYazarIndexAl = date('d-m-Y H:i:s'. strtotime($YazarIndexAl['yazTARIH']));
        return $YaziIdYazarIndexAl;
      }
}

ersinkandemir

$connection'ı fonksiyon dışında tanımlayıp, handlerını fonksiyona parametre olarak geçmelisiniz. Yapı olarak bu şekilde fonksiyon kullanmanız pek doğru değil. Yani sırf fonksiyon olsun diye yazmışsınız gibi olmuş.
Where there's a shell, there's a way.



bijehr

Alıntı yapılan: ersinkandemir - 29 Aralık 2014 - 21:56:04
$connection'ı fonksiyon dışında tanımlayıp, handlerını fonksiyona parametre olarak geçmelisiniz. Yapı olarak bu şekilde fonksiyon kullanmanız pek doğru değil. Yani sırf fonksiyon olsun diye yazmışsınız gibi olmuş.

fonksiyonlar.php diye bir sayfam var hemen her sayfada çağırılacak, boşa çalışmasın diye yapmıştım ama a orada get değeri lakin siz böyle söyleyince if get şeklinde koysam daha mantıklı sanki.

ersinkandemir

$connection = new mysqli('localhost', 'root', 'sifre', 'veritabani');
$connection->set_charset("utf8");

Bu satırları kullanacağınız yerde oluşturun. Fonksiyonu şöyle değiştirin:

function YazarIndexAl($a, $connection){
   $query = mysqli_query($connection,"SELECT * FROM veritabanii WHERE yazID = $a");
     
      while($YazarIndexAl = mysqli_fetch_array($query)) {
        echo "selam";
        $YaziIdYazarIndexAl = $YazarIndexAl['yazID'];
        $YazarIdYazarIndexAl = $YazarIndexAl['yazarID'];
        $YaziLinkYazarIndexAl = $YazarIndexAl['yazLINK'];
        $YaziAciklamaYazarIndexAl = $YazarIndexAl['yazACIKLAMA'];
        $YaziBaslikYazarIndexAl = $YazarIndexAl['yazBASLIK'];
        $YaziYaziYazarIndexAl = $YazarIndexAl['yazYAZ'];
        $YaziTarihYazarIndexAl = date('d-m-Y H:i:s'. strtotime($YazarIndexAl['yazTARIH']));
        return $YaziIdYazarIndexAl;
      }
}


Kullanırken YazarIndexAl(1, $connection) şeklinde kullanırsınız. 

Where there's a shell, there's a way.



bijehr

Yine olmuyor. Sanırım if kullanacağım, İlginçtir fonksiyon içinde şöyle birşey yaptığın zaman yine bağlanmıyor. (dışında çalışıyor)


$query = "SELECT * FROM YaziVeriTabani ORDER BY RAND() LIMIT 0,10" or die("Bağlantı Kurulamadı..." . mysqli_error($link));
$result = $connection->query($query);


ama bu şekilde bağlanıyor.

$query = mysqli_query($connection,"SELECT * FROM veritabanii WHERE yazID = $a");

En iyisi if kullanayım zaten acemiyim, zorlamayayım kendimi :)