Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

PHP Umstellung mysql connect

Frage Entwicklung PHP

Mitglied: DPiegza

DPiegza (Level 1) - Jetzt verbinden

21.11.2014 um 08:09 Uhr, 2295 Aufrufe, 7 Kommentare

Hallo zusammen.

Ich bekomme immer diese Fehlermeldung / Warnung:
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /homepages/25/d68722908/htdocs/xtc_modified_COM/inc/xtc_db_connect.inc.php on line 24


Der Befehl der diesen verursacht ist der Befehl $$link = mysql_connect(...);

Ich weiß das es an der Umstellung zur neuen PHP-Version liegt, bekomme den Code aber nicht richtig geändert. Kann mir jemand eine korrekte Lösung zeigen, Anbei der aktuelle Code:



function xtc_db_connect($server = DB_SERVER, $username = DB_SERVER_USERNAME, $password = DB_SERVER_PASSWORD, $database = DB_DATABASE, $link = 'db_link') {
global $$link;

if (USE_PCONNECT == 'true') {
$$link = mysql_pconnect($server, $username, $password);
} else {
$$link = mysql_connect($server, $username, $password);
}

BOF - Dokuman - 2009-09-02 - Disable "STRICT" mode for MySQL 5!
$vers = @mysql_get_server_info();
BOF - vr - 2010-01-01 - Disable "STRICT" mode for MySQL 5!
if(substr($vers,0,1) > 4) @mysql_query("SET SESSION sql_mode='MYSQL40'");
if(substr($vers, 0, 1) > 4) @mysql_query("SET SESSION sql_mode=''");
EOF - vr - 2010-01-01 - Disable "STRICT" mode for MySQL 5!
EOF - Dokuman - 2009-09-02 - Disable "STRICT" mode for MySQL 5!

BOF - Dokuman - 2009-05-27 - revised database connection
if ($$link) mysql_select_db($database);
if ($$link) {
@mysql_select_db($database) or die('Database not available');
}
EOF - Dokuman - 2009-05-27 - revised database connection

return $$link;
}
Mitglied: opalka
21.11.2014 um 09:11 Uhr
Hallo,

was spricht dagegen, einfach mysql_connect gegen mysqli_connect auszutauschen?

Gruß
Bitte warten ..
Mitglied: DPiegza
21.11.2014, aktualisiert um 10:13 Uhr
Bekomme jz folgendes:
Warning: mysqli_connect(): (HY000/2002): Connection refused in /homepages/25/d68722908/htdocs/xtc_modified_COM/inc/xtc_db_connect.inc.php on line 24
Unable to connect to database server!

neuer Code:
<?php

function xtc_db_connect($server = DB_SERVER, $username = DB_SERVER_USERNAME, $password = DB_SERVER_PASSWORD, $database = DB_DATABASE, $link = 'db_link') {
global $$link;

if (USE_PCONNECT == 'true') {
$$link = mysqli_pconnect($server, $username, $password);
} else {
$$link = mysqli_connect($server, $username, $password);
}

BOF - Dokuman - 2009-09-02 - Disable "STRICT" mode for MySQL 5!
$vers = @mysql_get_server_info();
BOF - vr - 2010-01-01 - Disable "STRICT" mode for MySQL 5!
if(substr($vers,0,1) > 4) @mysql_query("SET SESSION sql_mode='MYSQL40'");
if(substr($vers, 0, 1) > 4) @mysql_query("SET SESSION sql_mode=''");
EOF - vr - 2010-01-01 - Disable "STRICT" mode for MySQL 5!
EOF - Dokuman - 2009-09-02 - Disable "STRICT" mode for MySQL 5!

BOF - Dokuman - 2009-05-27 - revised database connection
if ($$link) mysql_select_db($database);
if ($$link) {
@mysql_select_db($database) or die('Database not available');
}
EOF - Dokuman - 2009-05-27 - revised database connection

return $$link;
}
?>
Bitte warten ..
Mitglied: opalka
21.11.2014 um 10:21 Uhr
Verbindungsdaten sind korrekt gesetzt? Sprichst du den Server über localhost:3306 oder einer anderen Adresse?
Bitte warten ..
Mitglied: DPiegza
21.11.2014 um 10:31 Uhr
über localhost
Bitte warten ..
Mitglied: Gersen
21.11.2014, aktualisiert um 11:09 Uhr
Hallo,

ganz so trivial scheint mir die Lösung nicht zu sein. Wenn Du mit mysqli_connect anfängst, musst Du auch mit mysqli_query, mysqli_get_server_info und mysqli_select_db weitermachen - und jedes Mal die ggf. geänderte Syntax beachten. Im schlimmsten Fall kann sich das durch die ganze Anwendung ziehen.

Es gibt wohl auch Konvertierungs-Tools.

Gruß,
Gersen

PS: Es wäre vielleicht gut, wenn Du zum Posten des PHP-Codes die entsprechenden Code-Tags verwenden könntest. Es erleichtert das Lesen enorm...
Bitte warten ..
Mitglied: opalka
21.11.2014, aktualisiert um 11:17 Uhr
Wie @Gersen schon schrieb, es muss natürlich dann auch überall mysql_xxx gegen mysqli_xxx ausgetauscht werden. Und kann es sein, dass es bei meiner Zeile 18 "<=" und nicht ">" heissen muss?

01.
  
02.
<?php 
03.
  function xtc_db_connect($server = DB_SERVER, $username = DB_SERVER_USERNAME, $password = DB_SERVER_PASSWORD, $database = DB_DATABASE, $link = 'db_link'
04.
05.
    global $$link
06.
     
07.
    if (USE_PCONNECT == 'true')  
08.
09.
      $$link = mysqli_pconnect($server, $username, $password); 
10.
    }  
11.
    else  
12.
13.
      $$link = mysqli_connect($server, $username, $password); 
14.
15.
 
16.
    $vers = @mysqli_get_server_info(); 
17.
 
18.
    if(substr($vers, 0, 1) <= 4) @mysqli_query("SET SESSION sql_mode='MYSQL40'"); // <= anstatt > 
19.
    if(substr($vers, 0, 1) > 4) @mysqli_query("SET SESSION sql_mode=''"); 
20.
 
21.
    if ($$link) mysqli_select_db($database); 
22.
 
23.
    if ($$link
24.
25.
      @mysqli_select_db($database) or die('Database not available'); 
26.
27.
     
28.
    return $$link
29.
30.
?> 
31.
 
Bitte warten ..
Mitglied: 16568
21.11.2014 um 21:44 Uhr
Leute, vergeßt es.

Der Threadstarter soll gefälligst dein Shopsystem aktualisieren, dann erledigt sich das von ganz alleine...


Lonesome Walker
Bitte warten ..
Ähnliche Inhalte
PHP
PHP MySQL Login (7)

Frage von Yanmai zum Thema PHP ...

PHP
MySQL-Abfrage mit php: Wert + true bzw. false (2)

Frage von tomolpi zum Thema PHP ...

Windows Server
SBS 2011 Umstellung der CA auf SHA2 (12)

Frage von GASTK0NT0 zum Thema Windows Server ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(2)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Netzwerkprotokolle
gelöst Leiten "dumme" Switches VLAN-Tags mit durch? (26)

Frage von coltseavers zum Thema Netzwerkprotokolle ...

Netzwerkgrundlagen
Kann auf Freigabe nicht Zugreifen (16)

Frage von leon123 zum Thema Netzwerkgrundlagen ...

Windows Server
gelöst Neues KB für W10 1607 und W2K16 wieder mal nicht im WSUS 3.0, hat das noch jemand? (16)

Frage von departure69 zum Thema Windows Server ...

Router & Routing
FTTH bzw FTTB Router (13)

Frage von ukulele-7 zum Thema Router & Routing ...