Avatar billede carsten1973 Nybegynder
04. marts 2012 - 12:49 Der er 3 kommentarer og
1 løsning

Transactions virker ikke fra php

Hej
Jeg har problemer med at få transactions til at virke fra php. jeg har ingen problemer med at få forbindelse til databasen ligesom jeg kan hente og opdatere. Det er transactions, der ikke fungerer, som i nedenstående eksempel

Mvh Carsten




link til site
http://bodhgaya73.dk/dhk/tilmeld/transtest.php

Her er koden

<?php
   
                   
           
        $db_hostname          = 'mydb17.surf-town.net';
            $db_username          = 'carst13_bruger';
            $db_password          = 'rikke';
            $db            = 'carst13_dhk';
           
            $con = mysql_connect(
                $db_hostname,
              $db_username,
                $db_password
            ) or die('Kunne ikke forbinde: ' . mysql_error());
   
            mysql_select_db($db, $con);
       


try
{
echo("her");
$db->beginTransaction();



$db->query("insert into dogs(dog_name, dog_regnumber, dog_birthdate) values('berner','567','2012-01-02')");


$db->commit();
echo ("virker");
}
    catch (Exception $e)
{
echo ("forkert");
  echo mysql_error();
  $db->rollback();
 
}




   
?>
Avatar billede Broxigar Praktikant
04. marts 2012 - 13:58 #1
Først og fremmest: ALDRIG SKRIVE DIT LOGIN TIL DATABASEN I EN OFFENTLIG POST

Derefter:
Hvis du ser på eksemplet fra PHP's hjemmeside http://php.net/manual/en/pdo.begintransaction.php, så bruger de $db->exec istedet for $db->query.

Derudover:
Hvis du lige er startet på at lære PHP og MySQL, så brug MySQLi (i for improved) istedet. Det er hurtigere og giver større sikkerhed.
Avatar billede arne_v Ekspert
04. marts 2012 - 15:21 #2
Hvad betyder "ikke fungerer" mere praecist?
Avatar billede carsten1973 Nybegynder
04. marts 2012 - 22:15 #3
Problemet er, at der ikke bliver indsat noget i tabellen dogs. Jeg har prøvet at ændre det til exec i stedet for query.
Avatar billede arne_v Ekspert
04. marts 2012 - 22:54 #4
$db            = 'carst13_dhk';

$db->beginTransaction();

ser meget mystisk ud.

En streng har ikke en beginTransaction metode !
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
Kategori
Kurser inden for grundlæggende programmering

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