Avatar billede sabumnim Novice
19. februar 2020 - 17:37 Der er 3 kommentarer

Mysql -> Mysqli

Hej alle,
Det er efterhånden (desværre) lang tid siden jeg har kodet PHP i hånden, da jeg har haft fokus på CMS de senste år.

Nu er jeg så lidt på herrens mark da MySql er erstattet af MySqli, og derfor vil min uddaterede kode ikke længere fungere med den nye version af PHP.

Er der nogle gode råd til at hvordan jeg igen kan kode PHP, skal MySql blot erstattes af MySqli i PHP koden eller skal der startes forfra?

Før kunne jeg:

$sql="INSERT INTO arkitektur_int SET
            titel='$titel',
            dato='$dato',
            beskrivelse='$beskrivelse',
            info='$info',
            pris='$pris',
            ext_link='$ext_link',
            ext_mail='$ext_mail',
            billed_fil='$billed_fil' ";

og

$sql="UPDATE arkitektur_int SET
            titel='$titel',
            dato='$dato',
            beskrivelse='$beskrivelse',
            info='$info',
            pris='$pris',
            ext_link='$ext_link',
            ext_mail='$ext_mail',
            billed_fil='$billed_fil'
            WHERE id ='$id' ";


Men da dette ikke virker mere så må der være en anden tilgængelig måde at få dette til at virke igen.

//Carsten
Avatar billede arne_v Ekspert
19. februar 2020 - 17:59 #1
Du skal ikke starte helt forfra.

Men der er nogle kald som skal ændres og når du nu skal røre ved kode så bær du også omskrive den så du bruger prepared statements.

Der må være tusinder af guides til mysqli på nettet.

Min er her:

https://www.vajhoej.dk/arne/articles/phpdb.html

Den har samme kode eksempel med mysql og mysqli - du kan sammenligne de to stykker kode.
Avatar billede arne_v Ekspert
19. februar 2020 - 18:03 #2
Her er stumperne for put/INSERT:


function t1_put($f1, $f2) {
    // connect to server and select database
    $con = get_connection();
    // construct SQL statement
    $sqlstr = "INSERT INTO T1(F1,F2) VALUES(" . (int)$f1 . ",'" . mysql_real_escape_string($f2, $con) . "')";
    // execute SQL statement
    mysql_query($sqlstr, $con) or die(mysql_error($con));
    // close connection to server
    mysql_close($con);
}



function t1_put($f1, $f2) {
    // connect to server and select database
    $con = get_connection();
    // prepare SQL statement
    $stmt = mysqli_prepare($con, 'INSERT INTO T1(F1,F2) VALUES(?,?)') or die(mysqli_error($con));
    // bind input
    mysqli_stmt_bind_param($stmt, 'is', $f1, $f2);
    // execute
    mysqli_stmt_execute($stmt) or die(mysqli_error($con));
    // close statement
    mysqli_stmt_close($stmt);
    // close connection to server
    mysqli_close($con);
}
Avatar billede sabumnim Novice
24. februar 2020 - 14:41 #3
Tak Arne,
Jeg må se om jeg lige kan finde hoved og hale i dette :-)

Tak for indspark

//Carsten
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