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, 1904 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 ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Datenbanken
gelöst Eine Art Access, nur mit PHP und MySQL? (14)

Frage von McLion zum Thema Datenbanken ...

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 ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (14)

Frage von SarekHL zum Thema DSL, VDSL ...