Veralteter MySQL-Befehl im Script. Was tun?

08/31/2013 17:36 .Ziadd#1
Hey ho,

das hier richtet sich an die erfahrenen MySQL User:
Auf meiner Homepage wird angezeigt, dass die Befehle in meiner Index-Datei veraltet sind. Der Fehler lautet wie folgt:

PHP Code:
Deprecatedmysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\Software\XAMPP\htdocs\index.php on line 15 
Zeile 15 und 16 der Index.php:

PHP Code:
$sqlHp mysql_connect(SQL_HP_HOSTSQL_HP_USERSQL_HP_PASS);
$sqlServ mysql_connect(SQL_HOSTSQL_USERSQL_PASS); 
Weiß einer, wie der neue Befehl lautet? Leider konnte mir auch einer der erfahrenen Scripter nicht helfen.
08/31/2013 18:58 #SoNiice#2
"use mysqli or PDO instead in C:SoftwareXAMPPhtdocsindex.php on line 15"

mysqli hat genau die selben Befehle, dafür musst du einfach hinter jedes mysql ein 'I' setzen.
08/31/2013 19:10 .Ziadd#3
Quote:
Originally Posted by .CHSoNiice View Post
"use mysqli or PDO instead in C:SoftwareXAMPPhtdocsindex.php on line 15"

mysqli hat genau die selben Befehle, dafür musst du einfach hinter jedes mysql ein 'I' setzen.
Hey CHSoNiice,

danke erstmal für deine Antwort. Genau deinen Lösungsvorschlag haben wir probiert. Danach kam nur die Fehlermeldung, dass
die Verbindung zur Datenbank abgebrochen sei.
08/31/2013 19:37 #SoNiice#4
War auch total falsch formuliert von mir, MySQLi ist eine Klasse. Wenn du bereits mit Klassen gearbeitet hast in PHP ist das kein Problem, ansonsten google ein wenig oder such dir jemanden der das kann.

Quote:
autocommit
change_user
character_set_name
close
commit
connect
dump_debug_info
debug
get_charset
get_client_info
get_connection_stats
get_server_info
get_warnings
init
kill
multi_query
mysqli
more_results
next_result
options
ping
poll
prepare
query
real_connect
real_escape_string
reap_async_query
escape_string
real_query
rollback
select_db
set_charset
set_opt
ssl_set
stat
stmt_init
store_result
thread_safe
use_result
refresh
Hier hast du schon mal alle Methoden der MySQLi-Klasse, die habe ich dir bereits ausgeben lassen, für den Rest befragst du am besten das PHP Handbuch oder Google selbst.
08/31/2013 19:41 'ChuckNorris#5
Oder wenn du nicht alles ersetzen willst kannst du diese Meldung auch so deaktivieren:

PHP Code:
error_reporting(E_ALL E_DEPRECATED); 
einfach am Anfang der index.php einfügen ist aber nicht wirklich zu empfehlen.

Gruß,
Chuck
08/31/2013 19:50 .Ziadd#6
Quote:
Originally Posted by .CHuckNorris View Post
Oder wenn du nicht alles ersetzen willst kannst du diese Meldung auch so deaktivieren:

PHP Code:
error_reporting(E_ALL E_DEPRECATED); 
einfach am Anfang der index.php einfügen ist aber nicht wirklich zu empfehlen.

Gruß,
Chuck
Hehe, so wie es aussieht, ist MySQLi nicht sehr weit verbreitet, auch wenn es
viel schneller und sicherer sein soll. Leider baut das ganze Script hier auf der alten MySQL Version auf, daher habe ich jetzt mal zu deiner primitiven Lösung gegriffen, um diesen Schönheitsfehler zu beseitigen, bis später MySQLi mehr im Trend ist.
08/31/2013 19:57 #SoNiice#7
Wenn die Meldung bereits ausgespuckt wird, dass es MySQL bald nicht mehr geben wird als PHP-Befehl, dann wird's in der nächsten Version entfernt sein.
08/31/2013 20:00 MartPwnS#8
MySQLi ist in der Tat die bessere Wahl du musst darauf achten dem mysqli_query Befehl den Link mitzugeben.

$link = mysqli_connect(...);
mysqli_query($link,"Deine Query");

Dann sollte das alles gegessen sein.

Mfg
MartPwnS