Start Knowledge Base PHP PHP MySQL Klasse

PHP MySQL Klasse

Aus der Kategorie: PHP
Dienstag, 14. September 2010 (Zuletzt aktualisiert am Freitag, 20. Mai 2011)
Mit dieser PHP Klasse können MySQL Datenbankverbindungen aufgebaut werden. Außerdem stellt sie Methoden zur Verfügung um Queries abzusetzen und die Ergebnisse zu verarbeiten.

 

Inhalte:

Nach Oben

Quellcode

 
class dbconnect
{
/*
 * Konstante aus configuration wurden eingelesen und hier eingesetzt
 */
 var $host        = 'host.example.com';     
 var $database    = 'db_example'; 
 var $db_user     = 'user_example';
 var $db_pass     = 'password';
 var $db_port     = '3306';
 
/*
 * Funktion um die Verbindung herzustellen
 * @Error: {connect}
 * statt mysql_connect() wäre auch mysql_pconnect() denkbar, dann ist die Verbindung aber persistent!
 */
 function connect()
 { 
 $this->connection = @mysql_connect($this->host, $this->db_user, $this->db_pass) or die("{connect} Database Error: ".mysql_errno()." : ".mysql_error()); 
 $this->select_database = @mysql_select_db($this->database, $this->connection) or die("{select_db} Database Error: ".mysql_errno()." : ".mysql_error());    
 }
 
/*
 * Funktion um einen MySQL Befehl zu senden 
 * @Error: {query}
 */
 function query($querystring){ 
 if ($this->connection == false) $this->connect(); 
 if ($this->connection == false) return; 
 
 $result =  mysql_query($querystring, $this->connection) or die("{query} Database Error : ".mysql_errno()." : ".mysql_error()); 
 
 return $result; 
 
 }
 
}
 
Nach Oben

Beispiel

 
 
$Connection = new dbconnect();
$select = $Connection->query("SELECT * FROM tbl_example");
 
while($row =  mysql_fetch_object($select))
{    
 echo $row->id;
 echo $row->name;
}
 
 
 
$Connection = new dbconnect();
 
$Connection->query('UPDATE tbl_example SET name = "neuerName" WHERE id = 5');
 

Kommentare 

 
#7 Jules 2010-09-27 14:06
Hat funktioniert vielen Dank für deine Tips!

LG Jules
Zitieren
 
 
#6 Marcel 2010-09-26 12:40
Ich hoffe es macht trotzdem Spaß ;)

Poste bitte mehr Infos, dann kann ich sicher helfen.

Versuche zum Debuggen einfach mal den SQL String mit einem einfachen echo $sqlStr auszugeben, eventuell wird dann der Fehler ersichtlich.
Zitieren
 
 
#5 Jules 2010-09-26 12:31
Ich versuch mich gerade an PHP :-) und hab das hier umgesetzt hat auch super funktioniert:

http://blog.service2max.ch/sortierbare-liste-mit-drag-drop-in-ajax-tutorial/#more-36

Jetzt wollte ich das ganze mit deiner Klasse anwenden.

Das auslesen hat auch super funktioniert nur das UPDATE funktioniert eben nicht.

LG Jules
Zitieren
 
 
#4 Marcel 2010-09-26 12:16
So einiges ;)

Ich kann zwar nicht ganz ableiten, was das Ziel sein soll. Aber anscheinen benutzt du parse_str um Variablen zu erstellen die per POST übermittelt wurden. Das ist gefährlich ...

Wenn, dann solltest du den zweiten Parameter von parse_str nutzen, dann werden die einzelnen Werte in ein Array geschrieben:

parse_str($str, $output);
echo $output['arr']; // foo bar

http://php.net/manual/de/function.parse-str.php

In der For schleife brauchst du nicht prüfen ob $i ein Integer ist, dass ist automatisch gegeben, da die For Schleife ja hochzählt.

Ich nehme mal an, dass das SQL Statement nicht funktioniert. Musst sonst die Fehlermeldung posten.
Versuche es mal so:

$ccount = count($navigati on);

for ($i = 0; $i -KLEINER- $ccount; $i++) {
query("UPDATE `cat` SET `sort_order` = '".$i."' WHERE `ID` = '".$navigation[$i] ."'");
}
Zitieren
 
 
#3 Jules 2010-09-26 12:01
Hallo Marcel

Was mach ich hier falsch?

include("system/classes/mysql.class.php");
$db = new dbconnect();

parse_str($_POS T['data']);

for ($i = 0; $i < count($navigati on); $i++) {
if(is_int($i)) {
$db->query("UPDATE cat SET sort_order = $i WHERE ID = $navigation[$i] ");
}
else {
exit;
}
}
Zitieren
 
 
#2 Marcel Oleart 2010-09-26 11:40
Habe ein entsprechendes Beispiel ergänzt. Die SQL Syntax ändert sich nicht. Man kann sich ganz nach http://dev.mysql.com/doc/refman/5.0/en/update.html richten.
Zitieren
 
 
#1 Jules 2010-09-26 09:27
Danke für das Tutorial.

Wie verwende ich es bei einem Update?

So:
$Connection->query("UPDATE qp_cat SET sort_order = $i WHERE ID = Peter");
Zitieren