Hi,
Ich verzweifel bald. Zugegeben, ich bin ein PHP Depp, kleinere Sachen bekomme ich hin, aber hier hörts leider schon auf. Ich will eine Webseite zu mir auf den Server umziehen, diese ist selbstgebaut und nutzt eine mysql Datenbank, der php Code dazu um die Datenbank abzufragen bzw. in diese zu schreiben ist von 2001 und besteht auf "Register Globals=on" aufgrund der Variablen. Nun wollte ich das ganze eben tauglich machen wie im Betreff geschrieben, bekomms aber nicht hin. wir reden hier von vielleicht 10-15 Zeilen Code, für einen erfahrenen PHP Programmierer also 5 Minuten Arbeit. Könnte mir da wer Hilfestellung leisten?
Und hier noch die Include Datei falls gebraucht:
Ich verzweifel bald. Zugegeben, ich bin ein PHP Depp, kleinere Sachen bekomme ich hin, aber hier hörts leider schon auf. Ich will eine Webseite zu mir auf den Server umziehen, diese ist selbstgebaut und nutzt eine mysql Datenbank, der php Code dazu um die Datenbank abzufragen bzw. in diese zu schreiben ist von 2001 und besteht auf "Register Globals=on" aufgrund der Variablen. Nun wollte ich das ganze eben tauglich machen wie im Betreff geschrieben, bekomms aber nicht hin. wir reden hier von vielleicht 10-15 Zeilen Code, für einen erfahrenen PHP Programmierer also 5 Minuten Arbeit. Könnte mir da wer Hilfestellung leisten?
PHP:
<? include "class.Database_MySQL.php"; // öffnet die datenbank
$myDB = new Database;
if ($function == "post") {
// wir kommen von der formular seite und wollen änderungen speichern
if ($id > 0) {
// wir wollen eine änderung zu einem vorhandenen datensatz speichern
$sql = "UPDATE aktuelles SET
datum = '$datum',
titel = '$titel',
quelle = '$quelle',
text = '$text',
anzeigen = '$anzeigen'
WHERE id=$id";
$myDB->query($sql);
} else {
// wir wollen einen neuen datensatz anlegen
$sql = "SELECT MAX(id)+1 as neue_id FROM aktuelles";
$myDB->query($sql);
$myDB->fetchRow();
$id = $myDB->getField("neue_id");
$sql = "INSERT INTO aktuelles (id,datum, titel, quelle, text, anzeigen)
VALUES ('$id','$datum', '$titel', '$quelle', '$text', '$anzeigen')";
$myDB->query($sql);
}
}
$sql = "SELECT * FROM aktuelles WHERE id=$id";
$myDB->query($sql);
$myDB->fetchRow();
?>
Und hier noch die Include Datei falls gebraucht:
PHP:
<?
/******************************************************************************
** FILENAME: class.Database_MySQL.php
**
** DESCRIPTION: class for transparent database access to a mysql database
**
** CREATED: 2001-01-23
**
******************************************************************************/
/*
// EXAMPLE OF CLASS USAGE:
$myDB = new Database(); // instantiate a Database object
$sql = "SELECT * FROM tablename";
$myDB->query($sql); // execute SQL statement
echo "Showing results 1-".$myDB->getNumRows()."<br>"; // display number of rows retrieved by query
echo "of following query: ".$myDB->getSql()."<br>"; // display performed query
while ($myDB->fetchRow()) { // loop through all result rows
echo $myDB->getField("fieldname")."<br>"; // echo value of fieldname for current result row
}
*/
define ("DATABASE_SERVER", "localhost"); // mysql server url
define ("DATABASE_USER", "xxxx"); // mysql server username
define ("DATABASE_PASSWORD", "xxxx"); // mysql server password
define ("DATABASE_NAME", "xxxx"); // database to be selected
class Database {
// class attribute definitions
var $dbHandle; // database connection handle
var $sql; // last performed query
var $result; // result identifier of a successful query
var $row; // contains a hash with the current result row
// class constructor
function Database() {
/*=============================================================================
* DESCRIPTION: initializes a persistent database connection when a new database
* object is created (if there already is an existing DB connection,
* it will be reused rather than creating a new one)
*
* PARAMETERS:
* NAME TYPE DESCRIPTION
*
* RETURN VALUE: None
*
* PREREQUISITES: None
*
* SIDE EFFECTS: $this->dbHandle is set
*
*============================================================================*/
$this->dbHandle = mysql_pconnect ( DATABASE_SERVER,
DATABASE_USER,
DATABASE_PASSWORD)
or die ("<p align=center><font color=#FF0000>Unable to connect to SQL server</font></p>");
mysql_select_db (DATABASE_NAME)
or die("<p align=center><font color=#FF0000>Unable to select database</font></p>");
} // end method Database
function query ($sql) {
/*=============================================================================
* DESCRIPTION: excutes the SQL query stored in $this->sql and stores the result
* identifier in $this->result
*
* PARAMETERS:
* NAME TYPE DESCRIPTION
* $sql string contains query to be performed
*
* RETURN VALUE: true / false (query success / failure)
*
* PREREQUISITES: open database connection
*
* SIDE EFFECTS: $this->result is set
*
*============================================================================*/
$this->sql = $sql;
$this->result = mysql_query ($sql, $this->dbHandle);
if (mysql_errno($this->dbHandle)) {
// query was not successful, start error handling
echo "<p align=center><font color=#ff0000>Error " . mysql_errno($this->dbHandle) . ": " .mysql_error($this->dbHandle) . "<br>";
echo $sql."</font></p>";
//mail ("xxxx@xxx","sql fehler ".mysql_errno($this->db_handle), mysql_error($this->db_handle)."\n\n".$this->sql);
return false;
} else {
return true;
}
} // end method query
function fetchRow () {
/*=============================================================================
* DESCRIPTION: fetches a row from a valid mysql result and stores it as a
* hash in $this->row
*
* PARAMETERS:
* NAME TYPE DESCRIPTION
*
* RETURN VALUE: true / false (success / failure) - one reason for failing would
* be that there are no further rows to be fetched from the result
*
* PREREQUISITES: $this->result must contain a valid mysql result identifier
*
* SIDE EFFECTS: $this->row is set
*
*============================================================================*/
$this->row = mysql_fetch_array ($this->result);
if ($this->row) {
return true;
} else {
return false;
}
} // end method fetchRow
function getField ($fieldName) {
/*=============================================================================
* DESCRIPTION: fetches a field value from the current $this->row and returns it
*
* PARAMETERS:
* NAME TYPE DESCRIPTION
* $fieldName string name of key in $this->row hash for which the
* corresponding value should be retrieved
*
* RETURN VALUE: true / false (success / failure) - one reason for failing would
* be that there are no further rows to be fetched from the result
*
* PREREQUISITES: $this->row must contain a valid result row
*
* SIDE EFFECTS: None
*
*============================================================================*/
return $this->row[$fieldName];
} // end method getField
function getNumRows () {
/*=============================================================================
* DESCRIPTION: determines the number of result rows yielded by the last query
*
* PARAMETERS:
* NAME TYPE DESCRIPTION
*
* RETURN VALUE: number of result rows yielded by the last query
*
* PREREQUISITES: $this->result must contain a valid mysql result identifier
*
* SIDE EFFECTS: None
*
*============================================================================*/
return mysql_num_rows ($this->result);
} // end method getNumRows
function getSql () {
/*=============================================================================
* DESCRIPTION: returns the last Query performed
*
* PARAMETERS:
* NAME TYPE DESCRIPTION
*
* RETURN VALUE: string containing the last query statement
*
* PREREQUISITES: None
*
* SIDE EFFECTS: None
*
*============================================================================*/
return $this->sql;
} // end method getSql
} // end class
?>