Probleme mit altem PHP Script und DB Anbindung
Hallo,
habe mal eine Frage bzgl. einer Fehlermeldung bei der Anbindung einer MYSQL Datenbank
ist ein etwas älteres Script, welches bei uns noch läuft auf einem alten Rechner - wollte nun mit dieser DB umziehen und habe mit zu testzewcken xampp installiert
habe die DB vom "alten" PC exportiert und auf dem "Neuen" importiert unter dem gleichen Namen und den Ordner "ts8" unter htdocs ebenfalls kopiert
Wenn ich nun auf dem neuen Rechner unter 127.0.0.1/ts8 die site aufrufen möchte, dann bekomme ich diese Meldung
das ist der code
das ist die ini Datei
habe mal eine Frage bzgl. einer Fehlermeldung bei der Anbindung einer MYSQL Datenbank
ist ein etwas älteres Script, welches bei uns noch läuft auf einem alten Rechner - wollte nun mit dieser DB umziehen und habe mit zu testzewcken xampp installiert
habe die DB vom "alten" PC exportiert und auf dem "Neuen" importiert unter dem gleichen Namen und den Ordner "ts8" unter htdocs ebenfalls kopiert
Wenn ich nun auf dem neuen Rechner unter 127.0.0.1/ts8 die site aufrufen möchte, dann bekomme ich diese Meldung
Fatal error: Uncaught mysqli_sql_exception: Unknown database 'localhost' in C:\xampp\htdocs\ts9\classes\Core.php:62 Stack trace: #0 C:\xampp\htdocs\ts9\classes\Core.php(62): mysqli->select_db('localhost') #1 C:\xampp\htdocs\ts9\check.php(19): Core::connectDB() #2 {main} thrown in C:\xampp\htdocs\ts9\classes\Core.php on line 62
das ist der code
<?php
/**
* This is a simplified Core-Class. In this case UI-logic and db-bindings
* are combined as one.
* @
*/
//define ( 'MYSQL_HOST', 'localhost' );
//define ( 'MYSQL_BENUTZER', 'root' );
//define ( 'MYSQL_KENNWORT', '' );
//define ( 'MYSQL_DATENBANK', 'timescheduler' );
class Core {
/* */
private static $config_file = "conf.ini";
/* */
//var $db_conf;
private static $link = null;
/**
*
* @param type $file
*/
public static function getDBConfig() {
$conf = parse_ini_file(Core::$config_file);
return $conf;
//die(var_dump($conf) );
//exit;
//$db_conf = array();
//$this->db_conf = $conf;
}
public static function connectDB() {
$conf = Core::getDBConfig();
//$link = mysql_connect($conf["host"], $conf["user"], $conf["password"]) or die("Could not connect: " . mysql_error());
/*$link = mysql_connect (MYSQL_HOST,
MYSQL_BENUTZER,
MYSQL_KENNWORT,
MYSQL_DATENBANK);*/
//Core::$link = new mysqli(MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT, MYSQL_DATENBANK);
Core::$link = new mysqli($conf["host"], $conf["user"], $conf["password"], $conf["name"]);
//mysql_set_charset('utf8', $link);
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
if (!Core::$link->set_charset("utf8")) {
printf("Error loading character set utf8: %s\n", Core::$link->error);
} else {
//printf("Current character set: %s\n", Core::$link->character_set_name());
}
// select our database
// select our database
//mysql_select_db(MYSQL_DATENBANK) or die(mysql_error());
Core::$link->select_db($conf["host"]);
}
public static function closeDB() {
//mysql_close();
Core::$link->close();
}
/**
das ist die ini Datei
host = "localhost"
port = "3306"
user = "root"
password = ""
name = "timescheduler"
[Settings]
title="Terminplaner"
time_granularity=5
day_begin_hour=8
day_end_hour=19
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 6274446909
Url: https://administrator.de/contentid/6274446909
Ausgedruckt am: 22.11.2024 um 06:11 Uhr
14 Kommentare
Neuester Kommentar
Core::$link->select_db($conf["host"]);
Wenn man statt dem Tabellennamen den Hostnamen beim Select übergibt verwundert mich dir Fehlermeldung ehrlich gesagt nicht 😁. Die Fehlermeldung verrät dir übrigens auch schon die Zeile 😜Fehlermeldung sind übrigens dazu da das man sie auch mal liest und nicht nur Copy n pasted 😉
Cheers briggs
Hallo,
Gruß,
Peter
Zitat von @martenk:
Was genau hast du denn an dieser Fehlermeldung nicht gelesen bzw. Verstanden? Alles, Nichts oder nur ein Teil? Dir ist schon Klar das wir deinen Wuellcode nicht kennen und auch nicht einsehen können, sowie alles benötigte drum herum.Fatal error: Uncaught Error: Call to undefined function get_magic_quotes_runtime() in C:\xampp\htdocs\ts12\fpdf\fpdf.php:1043 Stack trace: #0 C:\xampp\htdocs\ts12\fpdf\fpdf.php(77): FPDF->_dochecks() #1 C:\xampp\htdocs\ts12\stafftopdf.php(39): FPDF->__construct() #2 {main} thrown in C:\xampp\htdocs\ts12\fpdf\fpdf.php on line 1043
Gruß,
Peter
split() ist deprecated und wurde in PHP 7 entfernt!! ... bitte ersetzen durch str_split oder preg_split.
http://php.adamharvey.name/manual/en/function.split.php
http://php.adamharvey.name/manual/en/function.split.php
Hallo,
Immer sind andere Schuld
https://www.php.net/releases/8.0/en.php
https://www.php.net/manual/en/migration80.php
https://kinsta.com/blog/php-8-2/
https://support.deskpro.com/nl/kb/articles/php-ini-changes-aren-t-workin ...
https://www.phparch.com/2022/10/whats-changed-in-php-8-2/
https://developers.slashdot.org/story/20/11/28/1030246/php-80-brings-maj ...
https://durak.org/sean/pubs/software/php-7.4.3/migration56.openssl.html
Gruß,
Peter
Immer sind andere Schuld
jetzt bleibt dieser Fehler
Fatal error: Uncaught Error: Call to undefined function split() in C:\xampp\htdocs\ts12\stafftopdf.php:113 Stack trace: {main} thrown in C:\xampp\htdocs\ts12\stafftopdf.php on line 113
Schon mal drüber nachgedacht das dein PHP Code verwendet der nun nicht mehr unterstützt wird, sich Aufrufe geändert haben usw.? Frag den alten Codeersteller für welche PHP Version er seinen Code erstellt hat, oder frag den Server wo du den Code herhast welche PHP Version der wohl nutzt (da läuft es wohl ohne fehler) oder schaue nach was sich in PHP alles seit Version 3/4/5 usw. geändert/getan hat. Z.B. hier https://www.php.net/manual/en/migration80.incompatible.php, sonst bist du nächstes Jahr hier noch mit dein uns unbekanntes PHP.Fatal error: Uncaught Error: Call to undefined function split() in C:\xampp\htdocs\ts12\stafftopdf.php:113 Stack trace: {main} thrown in C:\xampp\htdocs\ts12\stafftopdf.php on line 113
https://www.php.net/releases/8.0/en.php
https://www.php.net/manual/en/migration80.php
https://kinsta.com/blog/php-8-2/
https://support.deskpro.com/nl/kb/articles/php-ini-changes-aren-t-workin ...
https://www.phparch.com/2022/10/whats-changed-in-php-8-2/
https://developers.slashdot.org/story/20/11/28/1030246/php-80-brings-maj ...
https://durak.org/sean/pubs/software/php-7.4.3/migration56.openssl.html
Gruß,
Peter
Die mysql_xxxxx Befehle aus dem PHP5 gehen im aktuellen PHP Level nicht mehr, bzw sind bei einigen Providern abgeklemmt, bei anderen nicht je nacdem wie die ihre Scriptengines konfiguriert haben.
Für eine einfache Migration hat der Schöpfer vom PHP das mysqli_ erfunden. Hab selber gerade ein Dutzend PHP Skripte durchgearbeitet. Dann muß man nicht die objektorientierte Variante nehmen, was unter Umständen einen Riesen Umstellungsaufwand bedeutet. Bei unserer PHP basierten Seite waren das 8 Dateien und ca. 100 Codestellen, die man allesamt mit einem automatisierten Ersetzen konvertieren konnte.
PHP5 wird bei praktisch allen Providern so langsam ad acta gelegt. Und bei einigen MySQLI Aufrufen sind Datenbank und Host vertauscht. Ist vom Prinzip her sehr einfach zu machen, meines Erachtens nur Fleißarbeit.
https://www.php.net/manual/de/book.mysqli.php
Für eine einfache Migration hat der Schöpfer vom PHP das mysqli_ erfunden. Hab selber gerade ein Dutzend PHP Skripte durchgearbeitet. Dann muß man nicht die objektorientierte Variante nehmen, was unter Umständen einen Riesen Umstellungsaufwand bedeutet. Bei unserer PHP basierten Seite waren das 8 Dateien und ca. 100 Codestellen, die man allesamt mit einem automatisierten Ersetzen konvertieren konnte.
PHP5 wird bei praktisch allen Providern so langsam ad acta gelegt. Und bei einigen MySQLI Aufrufen sind Datenbank und Host vertauscht. Ist vom Prinzip her sehr einfach zu machen, meines Erachtens nur Fleißarbeit.
https://www.php.net/manual/de/book.mysqli.php
Zitat von @martenk:
könnt ihr bitte einmal schauen bei diesem code
$td_date = split(' ', $td['treatment_date']);
könnt ihr bitte einmal schauen bei diesem code
$td_date = split(' ', $td['treatment_date']);
Au möhr, heute schon wieder Freitag?
RTFM oben schon verlinkt, liest hier keiner mehr die Links die man einem an die Hand gibt ???
http://php.adamharvey.name/manual/en/function.preg-split.php
$td_date = preg_split('/ /', $td['treatment_date']);