Я не могу подключиться к базе данных после обновления до php 7.
Я изменил mysql_ на mysqli_ и знаю, что нужны некоторые другие изменения, но они не должны касаться mysqli_connect.
Я не новичок в php и mysql, но мне очень сложно понять эти классы и #globals.
основной файл insert.php (для вставки данных в таблицу)
<?php
// ToolBox-Klasse (tbox) einfuegen.
include("includes/tbox.class.php");
// Datenbank-Klasse (db) einfuegen.
include("includes/db.class.php");
// Neue Objekte der Klassen bilden.
$tbox = new TBox();
// ToolBox Objekt an die Datenbankklasse Uebergeben.
$db = new Db($tbox);
// Datenbank-Werte in der Datenbank-Klasse setzen.
$db->db_host = "localhost"; // Host, über den man die Datenbank erreichen kann.
$db->db_user = "d00d6f3b"; // Benutzer, mit dem man die Verbindung zur Datenbank herstellen möchte.
$db->db_pass = "mypass"; // Passwort des Benutzer.
$db->db_name = "d00d6f3b"; // Datenbankname, wo sich die entsprechenden Tabellen befinden.
main();
// Hauptfunktion dieses Skripts.
function main () {
// Bufferung starten.
ob_start();
include("includes/header.php");
?>
...
the db.class.php
<?php
class Db {
public $sth;
var $db_name;
var $db_host;
var $db_user;
var $db_pass;
var $link_id; // Resultat von mysqli_connect().
var $query_id; // Resultat von mysqli_query().
var $record = array(); // Letzter Record.
var $row = 0; // Aktuelle Ergebniszeile.
var $num_rows = ""; // Anzahl Zeilen der letzten Anfrage.
var $num_fields = ""; // Anzahl Felder der letzten Anfrage.
var $locked = false; // True, wenn Tabellen gelockt sind.
var $class_tbox; // Objekt der ToolBox-Klasse.
// Konstruktor der Db Klasse.
function Db ($class_tbox) {
$this->class_tbox = $class_tbox;
}
// Connect zur Datenbank herstellen.
function connect () {
// Wenn wir keine gueltige Verbindungsid haben, versuchen wir neu zu verbinden.
if (! is_resource($this->link_id)) {
$this->link_id = @mysqli_connect($this->db_host, $this->db_user, $this->db_pass);
if (! is_resource($this->link_id)) {
$this->class_tbox->db_error(
"No connection to database."
);
$this->sth = $mysqli;
}
// Jetzt versuchen wir die richtige Datenbank auszuwaehlen.
// Schlaegt das fehl, geben wir einen Fehler aus.
if (! mysqli_select_db($this->db_name)) {
$this->class_tbox->db_error(
sprintf("Die Datenbank [%s] konnte nicht ausgewählt werden.",
$this->db_name),
mysqli_error(),
mysqli_errno()
);
}
}
}
// Versucht die offene Verbindung zur Datenbank zu beenden.
function close () {
@mysqli_close();
}
...
?>