<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
class dbAccess {
var $db_connect_id;
var $query_result;
var $row = array();
var $rowset = array();
var $num_queries = 0;
//
// Constructor
//
function dbAccess($sqlserver, $sqluser, $sqlpassword, $database, $persistency = true) {
$this->persistency = $persistency;
$this->user = $sqluser;
$this->password = $sqlpassword;
$this->server = $sqlserver;
$this->dbname = $database;
if($this->persistency) {
$this->db_connect_id = @mysql_pconnect($this->server, $this->user, $this->password);
} else {
$this->db_connect_id = @mysql_connect($this->server, $this->user, $this->password);
}
if($this->db_connect_id) {
if($database != "") {
$this->dbname = $database;
$dbselect = @mysql_select_db($this->dbname);
if(!$dbselect) {
@mysql_close($this->db_connect_id);
$this->db_connect_id = $dbselect;
}
}
return $this->db_connect_id;
} else {
return false;
}
}
//
// Other base methods
//
function destroy() {
if($this->db_connect_id) {
if($this->query_result) {
@mysql_free_result($this->query_result);
}
$result = @mysql_close($this->db_connect_id);
return $result;
} else {
return false;
}
}
//
// Base query method
//
function query($query = "", $transaction = FALSE) {
// Remove any pre-existing queries
unset($this->query_result);
if($query != "") {
$this->num_queries++;
$this->query_result = @mysql_query($query, $this->db_connect_id);
}
if($this->query_result) {
unset($this->row[$this->query_result]);
unset($this->rowset[$this->query_result]);
return $this->query_result;
} else {
return ( $transaction == END_TRANSACTION ) ? true : false;
}
}
//
// Other query methods
//
function numrows($query_id = 0) {
if(!$query_id) {
$query_id = $this->query_result;
}
if($query_id) {
$result = @mysql_num_rows($query_id);
return $result;
} else {
return false;
}
}
function affectedrows() {
if($this->db_connect_id) {
$result = @mysql_affected_rows($this->db_connect_id);
return $result;
} else {
return false;
}
}
function numfields($query_id = 0) {
if(!$query_id) {
$query_id = $this->query_result;
}
if($query_id) {
$result = @mysql_num_fields($query_id);
return $result;
} else {
return false;
}
}
function fieldname($offset, $query_id = 0) {
if(!$query_id) {
$query_id = $this->query_result;
}
if($query_id) {
$result = @mysql_field_name($query_id, $offset);
return $result;
} else {
return false;
}
}
function fieldtype($offset, $query_id = 0) {
if(!$query_id) {
$query_id = $this->query_result;
}
if($query_id) {
$result = @mysql_field_type($query_id, $offset);
return $result;
} else {
return false;
}
}
function fetchrow($query_id = 0) {
if(!$query_id) {
$query_id = $this->query_result;
}
if($query_id) {
$this->row[$query_id] = @mysql_fetch_array($query_id);
return $this->row[$query_id];
} else {
return false;
}
}
function fetchrowset($query_id = 0) {
if(!$query_id) {
$query_id = $this->query_result;
}
if($query_id) {
$result = array();
unset($this->rowset[$query_id]);
unset($this->row[$query_id]);
while($this->rowset[$query_id] = @mysql_fetch_array($query_id)) {
$result[] = $this->rowset[$query_id];
}
return $result;
} else {
return false;
}
}
function fetchfield($field, $rownum = -1, $query_id = 0) {
if(!$query_id) {
$query_id = $this->query_result;
}
if($query_id) {
if($rownum > -1) {
$result = @mysql_result($query_id, $rownum, $field);
} else {
if(empty($this->row[$query_id]) && empty($this->rowset[$query_id])) {
if($this->fetchrow()) {
$result = $this->row[$query_id][$field];
}
} else {
if($this->rowset[$query_id]) {
$result = $this->rowset[$query_id][$field];
} else if($this->row[$query_id]) {
$result = $this->row[$query_id][$field];
}
}
}
return $result;
} else {
return false;
}
}
function rowseek($rownum, $query_id = 0){
if(!$query_id) {
$query_id = $this->query_result;
}
if($query_id) {
$result = @mysql_data_seek($query_id, $rownum);
return $result;
} else {
return false;
}
}
function nextid(){
if($this->db_connect_id) {
$result = @mysql_insert_id($this->db_connect_id);
return $result;
} else {
return false;
}
}
function freeresult($query_id = 0){
if(!$query_id) {
$query_id = $this->query_result;
}
if ( $query_id ) {
unset($this->row[$query_id]);
unset($this->rowset[$query_id]);
@mysql_free_result($query_id);
return true;
} else {
return false;
}
}
function error($query_id = 0) {
$result["message"] = @mysql_error($this->db_connect_id);
$result["code"] = @mysql_errno($this->db_connect_id);
return $result;
}
}
?>
MySQL Datenbankzugriffsklasse
Chris Coyier am
Ich mag diese Klasse, kannst du ein Beispiel zeigen, wie man sie benutzt? Danke.
+1 wie benutzt man sie?
Wie benutzt man sie???
Das ist nur ein einfacher MySQL-Wrapper, aber du benutzt ihn so, wie du jede andere Klasse benutzen würdest. Du musst die Klasse zuerst initialisieren. Da diese Klasse eine Konstruktormethode hat, müssen wir diese aufrufen, um die Klasse zu initialisieren und die Daten in der Konstruktormethode zu erstellen.
Von hier aus hast du die Klasse nun initialisiert und eine Verbindung zu MySQL.
Du kannst also beginnen, deine Abfragemethoden und Abfragen auszuführen...
Ich hoffe, das hat geholfen....
Wie benutzt man Abfragen? fetch array??
Die Funktionen fetchrow und fetchrowset verwenden @mysql_fetch_array.
Wenn einer von euch etwas über PHP weiß, ist es ziemlich einfach zu benutzen. Es ist wie jede andere SQL-Klasse. Ich habe meine eigenen Änderungen am Skript vorgenommen, aber ansonsten ist es großartig.
Wie Joshua sagte,
Lies einfach die PHP-Funktion und du wirst sehen, wie sie funktioniert.
Kann ich MySQL Prepared Statements mit dieser Klasse verwenden? Ich sehe keine Parameterbindung in deinen Methoden, daher vermute ich, dass Prepared Statements nicht funktionieren werden.
Was ist END_TRANSACTION????
Wenn ich eine Abfrage auf WAMP ausführe, erscheint an dieser Zeile ein Fehler????