MySQL her ne kadar MS-SQL kadar yetenekli olsa da, yardımcı bir araç olan eski sürüm phpmyadmin ile ileri seviye işlemler yapmak istediğinizde canınız sıkılabilir. Ve mecburen mysql.exe ile bağlanarak komut yazmanız gerekebilir.
 
Xampp kullanıyorsanız mysql.exe’yi "c:xamppmysqlbin" klasöründe bulabilirsiniz. Komut isteminde gerekli parametreleri aşağıdaki gibi girebilirsiniz. Linux’ta da hemen hemen aynı komut vardır.
 
c:xamppmysqlbin>mysql.exe -h localhost -u root -p
Sonra da parolanız boş ise Enter ile geçebilirsiniz. "mysql>" ile SQL komutları girilebilir. Stored Procedure (saklı prosedür) yapabilmek için aşağıdaki örnek kodları girebilirsiniz. Silme, ekleme, güncelleme gibi işlemlerinizi bu sayede kısaltarak PHP’deki yazımı rahatlatmış olacaksınız.
 
USE veritabaninizinAdi;
DELIMITER //
CREATE PROCEDURE sil(in prm int)
BEGIN
   delete FROM ogrenci where kimlik=prm;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE ekle(in prm1 varchar(50),in prm2 varchar(50),in prm3 varchar(50),in prm4 varchar(50) )
BEGIN
   insert into ogrenci set adSoyad=prm1, numara=prm2, eposta=prm3, adres=prm4;
END //
DELIMITER ;
 Oluşan sil ve ekle alt programlarını phpmyadmin listeliyor ve silme işlemini yapabiliyor, ama düzenleyemiyor. (3.2.4’den eski sürümlerinde denediğimizde).
 
   SP’lerimiz hazır!
 
Şimdi artık PHP’de "sil ve ekle" komutlarını diğer sorguların çalıştırıldığı gibi (mysql_query ile) çalıştıralım:
 

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form3")) {
 $ekleSQL = sprintf("call ekle(%s, %s, %s, %s)",
  GetSQLValueString($_POST[‘adSoyad’], "text"),
  GetSQLValueString($_POST[‘numara’], "text"),
  GetSQLValueString($_POST[‘eposta’], "text"),
  GetSQLValueString($_POST[‘adres’], "text"));

 $Result1 = mysql_query($ekleSQL, $baglanti) or die(mysql_error());
}

if (isset($_POST["sil2"])) {
 $silSQL = sprintf("call sil(%s)",
  GetSQLValueString($_POST[‘sil’], "text"));

 $Result1 = mysql_query($silSQL, $baglanti) or die(mysql_error());
}

 call komutu ile çok kısa olarak işlem yaptık. Insert ve Update gibi komutlar için çok uygun bir kullanım. Ama select komutunda sonuç çok satırlı olabildiği için eski yönteme devam edebilirsiniz.
Reklamlar