#1 23. Dezember 2007 Hej Leute, der Threadname sagt eigentlich alles ... suche eine ziemlich umfangreiche und schnelle MYSQL Class! Danke + Multi-Zitat Zitieren
#2 23. Dezember 2007 AW: Suche MYSQL-Class Schonmal selber richtig geschaut? Also ich tippe mal nicht, weil man selbst schon bei php.net - anfangen könnte .... PHP: Mysqli - Manual PHP: PDO - Manual [G]Propel[/G] [G]MySQL Klasse[/G] etc pp + Multi-Zitat Zitieren
#3 23. Dezember 2007 AW: Suche MYSQL-Class habe schon gegoogelt Aber immer widersprüchliche Sachen gefunden wie z.b: Ist es sinnvoll bei jedem Query zur DB zu connecten, und die Verbindung dannach direkt wieder zutrennen? ALso bei jedem QUery? + Multi-Zitat Zitieren
#4 23. Dezember 2007 AW: Suche MYSQL-Class nein?`warum sollte es? XD ist doch schneller wenn der mysql-server dierekt den query beantworten kann anstatt nochmal zu prüfen ob die zugangsdaten stimme, ob es die ausgewählte datenbank gibt, ob man für das alles die richtigen berechtigungen hat usw. macht also keinen sinn ich weiß aber nicht so richtig was du mit mysql-klasse überhaupt meinst. willst du eine funktion haben mysql_query_2($query), die auch gleich schaut ob du schon ne verbindung hast und wenn nein eine aufbaut? greez myth + Multi-Zitat Zitieren
#5 23. Dezember 2007 AW: Suche MYSQL-Class nein, ist nicht sinnvoll ich habe mal eine klasse geschrieben, falls du noch php4 benutzt musst du die entsprechenden stellen ändern: PHP: <?class mysql { protected $db_host = false ; protected $db_user = false ; protected $db_pass = false ; protected $db_name = false ; protected $db_link = false ; public function __construct ( $db_host , $db_user , $db_pass , $db_name ) { $this -> db_host = $db_host ; $this -> db_user = $db_user ; $this -> db_pass = $db_pass ; $this -> db_name = $db_name ; } protected function error ( $error , $errno , $line = false , $query = false , $file = false ) { global $tpl ; if ( get_class ( $tpl ) == "smarty" ) { $tpl -> assign ( "error" , $error ); $tpl -> assign ( "errno" , $errno ); $tpl -> assign ( "line" , $line ); $tpl -> assign ( "file" , $file ); $tpl -> assign ( "query" , $query ); $tpl -> assign ( "pagetitle" , "SQL-Error" ); $tpl -> display ( "header.tpl" ); $tpl -> display ( "mysql_error.tpl" ); $tpl -> display ( "footer.tpl" ); } else { echo $errno . "|" . $error . "|" . $file . " " . $line . "|" . $query . "\n" ; } $handle = @ fopen ( "mysql_errors.txt" , "ab" ); @ fwrite ( $handle , $errno . "|" . $error . "|" . $file . " " . $line . "|" . $query . "\n" ); @ fclose ( $handle ); die(); } protected function link () { if ( $this -> db_link == false ) { $this -> db_link = mysql_connect ( $this -> db_host , $this -> db_user , $this -> db_pass ); if (! $this -> db_link ) $this -> error ( mysql_error ( $this -> db_link ), mysql_errno ( $this -> db_link ), __LINE__ - 2 , false , __FILE__ ); $this -> query ( "USE `" . $this -> db_name . "`" , __FILE__ , __LINE__ ); } if ( $this -> db_link != false ) { return $this -> db_link ; } } protected function escape ( $string ) { return mysql_real_escape_string ( $string , $this -> link ()); } public function insert_id () { return mysql_insert_id ( $this -> link ()); } public function query ( $query , $file = false , $line = false , $showerror = true ) { $result = mysql_query ( $query , $this -> link ()); if (! $result && $showerror ) $this -> error ( mysql_error ( $this -> link ()), mysql_errno ( $this -> link ()), $line , $query , $file ); return $result ; } public function select ( $table , $where = false , $cols = "*" , $limit_rows = false , $limit_offset = false , $file = false , $line = false , $showerror = true ) { // Build Query $query = "SELECT " ; if ( is_array ( $cols )) { foreach ( $cols as $key => $value ) { $query .= "`" . $value . "`, " ; } $query = substr ( $query , 0 , - 2 ); } else $query .= $cols ; $query .= " FROM `" . $table . "`" ; if ( is_array ( $where )) { $query .= " WHERE" ; foreach ( $where as $key => $value ) { $query .= " `" . $key . "` = '" . $this -> escape ( $value ). "' AND" ; } $query = substr ( $query , 0 , - 4 ); } elseif ( is_string ( $where )) { $query .= " WHERE " . trim ( $where ). "" ; } if ( is_int ( $limit_rows )) { $query .= " LIMIT " ; if ( is_int ( $limit_offset )) { $query .= $limit_offset . ", " ; } $query .= $limit_rows ; } // Und los gehts return $this -> query ( $query , $file , $line , $showerror ); } public function insert ( $table , array $values_arr , $file = false , $line = false , $showerror = true ) { // Build Query $cols = '' ; $values = '' ; foreach ( $values_arr as $key => $value ) { $cols .= "`" . $key . "`, " ; $values .= "'" . $value . "', " ; } $cols = substr ( $cols , 0 , - 2 ); $values = substr ( $values , 0 , - 2 ); $query = "INSERT INTO `" . $table . "` ( " . $cols . " ) VALUES ( " . $values . " );" ; // Und los gehts return $this -> query ( $query , $file , $line , $showerror ); } public function update ( $table , array $values_arr , $where , $file = false , $line = false , $showerror = true ) { // Build Query $query = "UPDATE `" . $table . "` SET " ; foreach ( $values_arr as $key => $value ) { $query .= "`" . $key . "` = '" . $value . "', " ; } $query = substr ( $query , 0 , - 2 ); if ( is_array ( $where )) { $query .= " WHERE" ; foreach ( $where as $key => $value ) { $query .= " `" . $key . "` = '" . $this -> escape ( $value ). "' AND" ; } $query = substr ( $query , 0 , - 4 ); } elseif ( is_string ( $where )) { $query .= " WHERE " . trim ( $where ). "" ; } $query .= ";" ; // Und los gehts return $this -> query ( $query , $file , $line , $showerror ); }} ?> die verbindung wird dabei erst aufgebaut, sobald du versuchst ein query zu schicken mit den select, update und insert methoden müsstest du dich vllt. ein bis 2 minuten auseinandersetzen akzeptieren für vieles sowohl arrays welche dann verarbeitet werden als auch normale mysql anweisungs-teile wobei ich natürlich mehr die array funktion benutze achja: gibt wenn du smarty hast darüber fehler aus + Multi-Zitat Zitieren
#6 24. Dezember 2007 AW: Suche MYSQL-Class vor einiger zeit mal was gemacht: http://85.17.162.42/murdoc/class.mysql.phps anleitung gibts hier: http://uncreativ.de/index.php?page=Thread&threadID=116 + Multi-Zitat Zitieren