Avatar billede hans01 Forsker
09. december 2016 - 10:14 Der er 7 kommentarer

modtager en fejl: Fatal error: Uncaught Error: Call to undefined function mysql_select_db()

jeg modtager pludseligt denne fejl:
! ) Fatal error: Uncaught Error: Call to undefined function mysql_select_db() in C:\wamp64\www\drag-n-drop\login.php on line 52
( ! ) Error: Call to undefined function mysql_select_db() in C:\wamp64\www\drag-n-drop\login.php on line 52
Call Stack
#    Time    Memory    Function    Location
1    0.0009    387992    {main}( )    ...\login.php:0

min login.php linie 52 ser sådan ud: 

mysql_select_db($database_mysql, $mysql);

Hvad er det der sker?
Avatar billede hans01 Forsker
09. december 2016 - 10:23 #1
jeg har tjekket, der ligger en php 7 version, som kan drille min gamle kode?
Avatar billede olsensweb.dk Ekspert
09. december 2016 - 10:26 #2
hvilke vertion af PHP anvender du ??
>jeg har tjekket, der ligger en php 7 version, som kan drille min gamle kode?

alle mysql_xxx functioner er fjernet i PHP7

ref http://php.net/mysql_connect
This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0. Instead, the MySQLi or PDO_MySQL extension should be used.
Avatar billede hans01 Forsker
09. december 2016 - 13:38 #3
Hej Olsen

betyder det jeg skal erstatte alle MySQl med MySQli?
Avatar billede olsensweb.dk Ekspert
09. december 2016 - 13:53 #4
>betyder det jeg skal erstatte alle MySQl med MySQli?
hvis du anvender PHP7 så ja.

noget af slave arbejdet kan gøres vha et tool
http://www.computerworld.dk/eksperten/spm/1012488?k=8231155
fundet ved denne google "site:http://www.computerworld.dk/eksperten Call to undefined function mysql_ 2016"



*************
det nemmeste er at skifte til mysqli, i mysqli kan du anvende 2 styles frit som du har lyst

procedural style: som du kender fra det gamle mysql, der er grundlæggende bare tilføjet et i, i alle mysql_ kommandoerne så de hedder mysqli_, og ved mange af dem skal du også angive din connection

OOP style: dette er det der anvendes mest, og er fremtiden

Prepare Statement: er noget af det nye der er kommet til i mysqli, en kvik guide findes her http://www.computerworld.dk/uploads/eksperten-guider/1480-Prepared-Statements-under-MySQLI-kom-igang.pdf
du har kun numbered place holders

*************
PDO: dette ser jeg som det fremtidige ext (API), du kan kun anvende OOP style, tilgengæld har du alle fordele fra ODBC, men ikke ulemperne ved at skulle installerer en system driver
PDO anvender også en extern driver, men PHP har de mest anvendte indbygget. (skal evt enables i php.ini)

Prepare Statement: er klart forbedret i forhold til mysqli
du har numbered placeholders og named placeholders, sidst nævnte er klart nemmere at læse IMHO
*****************
Avatar billede hans01 Forsker
09. december 2016 - 15:17 #5
Hej igen Olsen

bare lige for at være sikker, kan jeg køre en find og replace alle MySQl til MySqli, eller skal jeg igennem en for en?
Avatar billede olsensweb.dk Ekspert
09. december 2016 - 15:41 #6
det er ikke nok bare at lave en søg og erstat !!,
nogle af functionerne skal også have en msqli connection, som første parameter så du skal dem igenne en for en.
noget af det kan laves med det tool jeg henviste i #4, men den laver det i procedural style, og jeg vil anbefale at anvende OOP style, så du skal coden igennem en for en.
Avatar billede hans01 Forsker
09. december 2016 - 15:52 #7
tusind tak for svaret.. fandens til ballade.. hav en god aften
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester