1. nasza księgarnia internetowa oferuje tanie książki nowości wydawnicze przeplatają się tu z klasykami umożliwiamy przy tym wygodny zakup w trybie online
fundacja tvn joomla-cms.com.pl
A+ A A-

Create table class pdo

  • Kategoria: Class
  • Opublikowano: wtorek, 01, kwiecień 2014 18:06
  • Super User
  • Odsłony: 35549

Tworzenie tabel bazy danych w pdo

 

    Wydawać by się może proste, ale. Na początku zastanówmy się jak to ma wyglądać. Sprawdzenie czy już taka tabela nie istnieje, wiem że można to sprawdzić za pomocą samego mysql, lecz chcę zrobić do tego obsługę błędów, które mogą się przydać w późniejszym użytkowaniu.

   Postanowiłem utworzyć taką małą klasę do tworzenia tabel w bazie mysql za pomocą biblioteki PDO. Klasa posiada także usuwanie tabel i dodawanie zapytania insert które czasami podajemy przy tworzeniu takich tabel, wszystko w pdo. Sami zobaczcie co z tego wyszło.

 

 

index.php


 * @Site www.joomla-cms.com.pl 
 */  


$create   = new createtableclass();

   $table="admin";
   
   $sql2 = 'CREATE TABLE IF NOT EXISTS `admin` ('
               .'`id_ad` int(11) NOT NULL AUTO_INCREMENT,'
               .'`login` varchar(255) NOT NULL,'
               .'`password` varchar(255) NOT NULL,'
               .'`sesion` varchar(255) NOT NULL,'
               .'PRIMARY KEY (`id_ad`)'
               .') ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;';
	##################################################################################		   
			   
   // zapytanie
   $insert = "INSERT INTO `admin` (`id_ad`, `login`, `password`, `sesion`) VALUES 
          (?, ?, ?, ?)";
   // dane dla insert	  
   $insert_execute = array('2', 'admin', 'admin', '0');
   
$create->drop_table($table); /* or */ $create->create_table($table, $sql2, $insert, $insert_execute);
   
  
    echo $create->error_table();


create-table-class-pdo.php


 * @Site www.joomla-cms.com.pl 
 */  

class createtableclass{
    
    private $db;
    public $error = false;
	
   public function __construct(){ 
          $this->db   = new databaseClass();   // połączenie z bazą z autoload
		  $this->error;
        }
		
	public function error_table(){
	    if($this->error !== false){
		    return $this->error;
		}
    }	
	
    public function drop_table($table){
	    if(!empty($table)){
		  $sql4 ='DROP TABLE IF EXISTS '.$table; // szukamy tabeli
		 if($this->db->exec($sql4) !== false){
            $this->error= 'Usunięto Tabelę.';
           } else {
            $this->error= 'Nie Usunięto Tabeli .'.$table;
          } 
    }else{$this->error="Podaj nazwę tabeli do usunięcia";}
	}	
		
  public function create_table($table, $sql2, $insert=null, $insert_execute=null){
      try {
	      if(!empty($table) && !empty($sql2)){
		  /* Sprawdzamy niezależnie od podania parametru IF NOT EXISTS
		  ponieważ dostaniemy odpowiedź i wyświetlimy ją sobie na ekranie */
	     $sql ='SHOW TABLES LIKE :table'; // szukamy tabeli
         $stmt = $this->db->prepare($sql);
		 $stmt->bindValue(':table', $table, PDO::PARAM_STR);
         $stmt->execute();
    if($stmt->fetch() > 0){
             $this->error ='Tabela istnieje.';     
      }else{
	  
		if($this->db->exec($sql2) !== false){
            $this->error= 'Tabela utworzona pomyślnie.';
          // return 1; 
           } else {
            $this->error= 'Nie utworzona tabeli .'.$table;
          // return 0;
          }
		  // po utworzeniu tabeli możemy przypisać insert 
		 if(!empty($insert) && !empty($insert_execute)){
		    $q = $this->db->prepare($insert);
         $q->execute($insert_execute); 
		 }
	    }
	       }else{
		   $this->error="Podaj nazwę tabeli lub zapytanie";
		   }
             }catch(PDOException $e){
              echo 'Połączenie nie mogło zostać utw.
'.$e->getMessage();
                    }        
   
   }    
 }          

  

Komentarze  

 
0 #1 bkfwarszawa 2014-05-10 21:22
I've been absent for some time, but now I remember why I used to love this site.
Thank you, I will try and check back more often.
How frequently you update your site?
Cytować
 

Dodaj komentarz


Kod antyspamowy
Odśwież

 Pozycjonowanie-Joomla, seo-joomla Tworzenie-Sitemap-joomla, TG-Chmura-Tagów, rs-rules-security Admin-Login-Security, joomla Licencja-Drupal, Licencja-ZenCart, Licencja-GPL2, Licencja-GPL3 Creative-Commons-License, joomla-2.5.x Kalendarz-Celtycki data-zodiak-data-majowie, moduł-GA-Gadu-gg, Moduł-Lotto-joomla K2-joomla Moduł-Kodownik-joomla kontakt-admin-3-pl Moduł-miłość-joomla Moduł-minutnik-joomla Google-Gadżet-strona-www Moduł-Multi-AnalogClock-joomla Grafika-Wektorowa-joomla Pascal-podstawy Pascal-instrukcja-if Pascal-pętla-for Pascal-Pętla-white-Repet Pascal-Instrukcja-Case Pascal Pascal-record Pascal-Tablice-(Macierze) Kolory-w-Pascalu Systemy-Liczbowe-10-16-8 Pak-top10-głosowanych-jQuery Waga-Bmi BF-Bear-Form Joomla+2.5+captcha+google BSD joomla, MP3 Creating, SEO, Admin tg RS BF The Celtic Forever Création Erstellen Toujours Immer Multi Contact-Admin-3-EN Contact-Admin-3-fr Contact-Admin-3-DE Open-Software-License-v.3.0-(OSL-3.0) System Interfejsy Mozilla joomla-metadane, seo-katalogi, wymiana Slider aukcjoner, Informator Osiemnaście CiastkoPl sem, Class Class-PDO-session login, registerUserClass, index PHP PDO, Class-ResponsiveCss zarabiarka-allegro Pogodynka Pogodynka Praca-Programisty Praca Funkcja-if Special+Arguments Simple-Captchta Jquery, Od 2 Konfiguracja 4.Instalacja 5.Konfiguracja 6.Instalacja 7.Konfiguracja 8.Metadane 9.Optymalizacja 10.Ciasteczka 11.System 12.Diagnostyka 13.Sesja Klasa Książka responsive Uniwersal Dodatek GoogAd.v1.4-polish-utf-8 Error Cooki Funkcje Linki Google Kompresja pdf, Dynamiczne template wycena Twoja Separation reklama ssd, bezpieczeństwo wzorce rekrutacja Zastosowanie Urządzenia Portale chat, dyski Platformy QUIZ 

Używamy cookies i podobnych technologii m.in. w celach: świadczenia usług, reklamy, statystyk. Korzystanie z witryny bez zmiany ustawień Twojej przeglądarki oznacza, że będą one umieszczane w Twoim urządzeniu końcowym. Pamiętaj, że zawsze możesz zmienić te ustawienia. To find out more about the cookies we use and how to delete them, see our privacy policy.

I accept cookies from this site.

EU Cookie Directive Module Information