Mysqli'nin ve çoklu sorgu ile yardımcı

1 Cevap php

Ben bugüne kadar mysqli kullanmak için ve bu hakkı almak gibi olamaz hiç ettik. İstediğim bir mysql yordam aramayı kabul etmek ve onu bu sonuç olacak basit bir fonksiyonudur.

Ben bu prosedürleri kullanmaya başladı, ben mysql_query kullanarak, veritabanı sorgulama eski yolu, artık bana beklenen sonuçları almak istiyorsunuz fark; bir işlem başarıyla dönecekti ve diğer olmaz. Orada manuel ve diğer bazı örnekler okuduktan sonra sonuçlar silinir sonra tamponlu olması gerekir, çünkü bu garip davranışın nedeni olduğunu öğrendim. Ben bunu çeşitli yollar denedim ve başarısız olmuştur.

Ben mysqli nesnenin başka bir örneği oluşturmak ve bana ancak her ikisi de sonuç alırsınız eğer bugüne kadar çalışır ne, ben onu geri 20 farklı sorgular almak için 20 farklı nesne örneğini oluşturmak için olması gerektiğini doğru olduğunu sanmıyorum.

Yine, burada istediğimiz, ben bir prosedür beslemek ve sonuçları iade sahip tek bir işleve sahip olmaktır.

$mysqli = new mysqli('host','user','password','test');
$rs = $mysqli->query('CALL titles()');
while($row = $rs->fetch_object())
{
  print_r($row);
}

$mysqli2 = new mysqli('host','user','password','test');
$rs2 = $mysqli2->query('CALL colours()');
while($row2 = $rs2->fetch_object())
{
  print_r($row2);
}

1 Cevap

Bunun için bir sınıf yapabilirsiniz:

db.php / / A db sınıfı. Eğer bir sorgu gerçekleştirmek diyoruz.

<?php       
    class MyConnection{ 
        var $db_host = 'Localhost';
        var $db_user = 'mYUserName';
        var $db_password = 'myPassword';
        var $db_name = 'mYDB';
        var $connection;


        function Connect(){
            $this->connection = @mysqli_connect($this->db_host, $this->db_user, $this->db_password) 
            or 
            die("Error: ".mysqli_connect_error());
            mysqli_select_db($this->connection, $this->db_name);
            mysqli_query($this->connection, "SET NAMES 'utf8'");
        }

        function Disconnect(){
            mysqli_close($this->connection);
        }

        function ExecSQL($query){
            $result = mysqli_query($this->connection, $query)
                                or
                                die('Error: '.mysqli_error($this->connection));
            return $result;
        }   

    }

?>

Uygulama:

include "db.php";
$conn = new MyConnection;
$conn->Connect();

$rs = $conn->ExecSQL('CALL titles()');
while($row = $rs->fetch_object())
{
  print_r($row);
}

$rs2 = $conn->ExecSQL('CALL colours()');
while($row2 = $rs2->fetch_object())
{
  print_r($row2);
}
 $conn->Disconnect();