Avatar billede bqnke Nybegynder
17. december 2015 - 15:47 Der er 19 kommentarer og
1 løsning

INSERT mysql fra php fungere ikke?

Hej Eksperter.

Jeg har følgende problem med min kode.

Den vil bare ikke indsætte dataerne i mysql.

Køre jeg INSERT scriptet manuelt i phpmyadmins sql funktion og ænder variablerne til tekst. altså de 3 med $ foran så køre den det uden fejl.
jeg kan dermed regne ud det nok er i mine postes det går galt, men som i kan se i koden echo'er jeg alle 3 variabler ud, og de kommer fint frem.

Jeg har på fornemmelsen, det er en lille småfejl håber i kan hjælpe.

Mvh.


<?php
if(isset($_POST['opret']))
{
$p_navn= $_POST['p_navn'];
$p_undertekst = $_POST['p_undertekst'];
$p_beskrivelse = $_POST['p_beskrivelse'];
    echo "$p_navn $p_undertekst $p_beskrivelse";
   
mysql_query(INSERT INTO( `hold_ud_dk_db`.`katinka_produkter` (`id`, `p_navn`, `p_undertekst`, `p_beskrivelse`, `p_pris`, `p_startdato`, `p_slutdato`, `p_billedlink`) VALUES (NULL, NULL, $p_navn, $p_undertekst, $p_beskrivelse, NULL, NULL, NULL)));
}

   
include 'header.php';
?>
Opret et produkt:<br><br>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
   
Produktnavn: <input type="text" name="p_navn"><br>
Produkt undertekst: <input type="text" name="p_undertekst"><br>
Produkt beskrivelse<input type="text" name="p_beskrivelse"><br>
<input type="submit" name="opret" value="Opret Produkt">
</form


<?php


include 'footer.php';
?>

i min header har jeg selvfølgelig config.php includet,
Fejmeddelse, når scriptet bliver kørt : Parse error: syntax error, unexpected 'INTO' (T_STRING) in /var/www/hold-ud.dk/public_html/katinka/admin/opretprodukt.php on line 10
Avatar billede arne_v Ekspert
17. december 2015 - 15:53 #1
mysql_query(INSERT INTO( ... NULL)));

Ingen "" omkring streng.

Ekstra parenteser.

mysql_query("INSERT INTO ... NULL)");
Avatar billede arne_v Ekspert
17. december 2015 - 15:53 #2
Og saa er koden pivaaben for SQL injection.
Avatar billede bqnke Nybegynder
17. december 2015 - 16:11 #3
Mange tak for svar.

Nu giver den ingen fejl, men serveren finder ikke siden nu når jeg køre den. og der bliver intet oprettet i databasen.

koden ser således ud nu:
<?php
if(isset($_POST['opret']))
{
$p_navn= $_POST['p_navn'];
$p_undertekst = $_POST['p_undertekst'];
$p_beskrivelse = $_POST['p_beskrivelse'];
    echo "$p_navn $p_undertekst $p_beskrivelse";
   
mysql_query("INSERT INTO( `hold_ud_dk_db`.`katinka_produkter` (`id`, `p_navn`, `p_undertekst`, `p_beskrivelse`, `p_pris`, `p_startdato`, `p_slutdato`, `p_billedlink`) VALUES (NULL, NULL, $p_navn, $p_undertekst, $p_beskrivelse, NULL, NULL, NULL))");
}

   
include 'header.php';
?>
Opret et produkt:<br><br>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
   
Produktnavn: <input type="text" name="p_navn"><br>
Produkt undertekst: <input type="text" name="p_undertekst"><br>
Produkt beskrivelse<input type="text" name="p_beskrivelse"><br>
<input type="submit" name="opret" value="Opret Produkt">
</form


<?php


include 'footer.php';
?>
Avatar billede arne_v Ekspert
17. december 2015 - 16:30 #4
Du har stadig ekstra parenteser.

Og slaa fejl meddelelser til, saa du kan se hvad der sker.
Avatar billede bqnke Nybegynder
17. december 2015 - 16:42 #5
Fjerner jeg, paraentserne giver sql følgende fejl : Parse error: syntax error, unexpected 'INTO' (T_STRING) in /var/www/hold-ud.dk/public_html/katinka/admin/opretprodukt.php on line 10

   
mysql_query(INSERT INTO `hold_ud_dk_db`.`katinka_produkter` (`id`, `p_navn`, `p_undertekst`, `p_beskrivelse`, `p_pris`, `p_startdato`, `p_slutdato`, `p_billedlink`) VALUES (NULL, NULL, $p_navn, $p_undertekst, $p_beskrivelse, NULL, NULL, NULL));
}
Avatar billede arne_v Ekspert
17. december 2015 - 16:56 #6
Nu er "" vaek igen. De skal vaere der.
Avatar billede bqnke Nybegynder
17. december 2015 - 17:01 #7
Fej meddelse : dsds ds dsds
Warning: mysql_query() [function.mysql-query]: No such file or directory in /var/www/hold-ud.dk/public_html/katinka/admin/opretprodukt.php on line 10

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /var/www/hold-ud.dk/public_html/katinka/admin/opretprodukt.php on line 10
Db connected successfully

script:
mysql_query("INSERT INTO `hold_ud_dk_db`.`katinka_produkter` (`id`, `p_navn`, `p_undertekst`, `p_beskrivelse`, `p_pris`, `p_startdato`, `p_slutdato`, `p_billedlink`) VALUES (NULL, NULL, $p_navn, $p_undertekst, $p_beskrivelse, NULL, NULL, NULL)");
}

Jeg må da snart have fattet det ...
Avatar billede arne_v Ekspert
17. december 2015 - 17:59 #8
Lyder som et connect problem.

Hvordan ser koden der connecter til databasen ud?
Avatar billede bqnke Nybegynder
17. december 2015 - 19:46 #9
?php
$servername = "";
$username = "";
$password = "";
$database = "";

$conn = new mysqli($servername, $username, $password, $database);


if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Db connected successfully";
?>
Avatar billede arne_v Ekspert
17. december 2015 - 20:04 #10
Den er gal.

$conn = new mysqli($servername, $username, $password, $database);

laver en mysqli connection.

mysql_query("...");

forventer en mysql connection.
Avatar billede arne_v Ekspert
17. december 2015 - 20:05 #11
Ja - da du boe rbruge mysqli saa er den connection du laver vel god nok - det er det andet kald som er forkert.
Avatar billede bqnke Nybegynder
17. december 2015 - 20:06 #12
Hvordan kan jeg så lave det anderledes ?
Avatar billede arne_v Ekspert
17. december 2015 - 20:12 #13
Muligvis kan du bare bruge mysqli_query i.s.f. mysql_query
Avatar billede bqnke Nybegynder
17. december 2015 - 20:24 #14
Warning: mysqli_query() expects at least 2 parameters, 1 given in /var/www/hold-ud.dk/public_html/katinka/admin/opretprodukt.php on line 11
Avatar billede arne_v Ekspert
17. december 2015 - 20:36 #15
mysqli_query($conn, "INSERT INTO `hold_ud_dk_db`.`katinka_produkter` (`id`, `p_navn`, `p_undertekst`, `p_beskrivelse`, `p_pris`, `p_startdato`, `p_slutdato`, `p_billedlink`) VALUES (NULL, NULL, $p_navn, $p_undertekst, $p_beskrivelse, NULL, NULL, NULL)");
Avatar billede bqnke Nybegynder
17. december 2015 - 20:47 #16
Nu ryger den klart igennem på siden, men ingen reaktion i phpmyadmin... -.-
Avatar billede bqnke Nybegynder
17. december 2015 - 21:05 #17
Har løst den, men tak for hjælpen. du fortjener pointne. smid et svar. god aften :)
Avatar billede arne_v Ekspert
18. december 2015 - 02:19 #18
svar
Avatar billede arne_v Ekspert
18. december 2015 - 02:19 #19
laes op paa parameters og prepared i naermeste fremtid
Avatar billede jakobdo Ekspert
18. december 2015 - 10:34 #20
PS: De fy-ord Arne snakker om, kan du læse mere om her: http://dk2.php.net/manual/en/mysqli.quickstart.prepared-statements.php

Det er vejen frem, hvis ikke du vil hackes.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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