Še eno mysql vprašanje
 
markwell 11. sep 2013 14:23:21 Pridružen od:
6. dec 2012
886 objav
587 113 21
#1

Lep pozdrav!



Zamima me, če kdo najde kako napako v slednji kodi. Nekaj delam narobe.

HTML:


<body>
<form method="post" action="procesiraj.php">
<input name="stevilka" type="text"></input>
<input type="submit" name="submit"></input>
</body>

In še php:


<?php

$dbc=mysqli_connect("localhost", "xxx@localhost", "", "test") or die("Danger, danger Will Robinson, no entry into database!");

$query="INSERT INTO testek VALUES($_POST["stevilka"])";
mysqli_query($dbc,$query);

if (!mysqli_query($dbc,$query))
{
die('Error: ' . mysqli_error($dbc));
}

mysqli_close($dbc);
?>
všeč(0) ni všeč(0) spam(0)
Supremacist mysogonist straight white male. Respect my pronouns!
 
Vini 11. sep 2013 14:27:02 Pridružen od:
1. sep 2006
6612 objav
5234 611 56
#2
$query="INSERT INTO testek VALUES($_POST["stevilka"])";

Tole je syntax error. Saj ti verjetno PHP to javi, ti ne?


všeč(3) ni všeč(0) spam(0)
 
markwell 11. sep 2013 14:27:45 Pridružen od:
6. dec 2012
886 objav
587 113 21
#3

Niti ne, hvala Vini!


všeč(0) ni všeč(0) spam(0)
Supremacist mysogonist straight white male. Respect my pronouns!
 
Vini 11. sep 2013 14:29:01 Pridružen od:
1. sep 2006
6612 objav
5234 611 56
#4

Potem si pa vključi error reporting. :)


všeč(0) ni všeč(0) spam(0)
 
SlimDeluxe 11. sep 2013 14:54:18 Pridružen od:
29. apr 2010
1223 objav
1022 144 9
#5

$query="INSERT INTO testek VALUES($POST[stevilka])";

Je pa sila nevarna taka praksa, prej bi, če ne drugo, vsaj naredil intval($
POST['stevilka']).


všeč(0) ni všeč(0) spam(0)
Freelance Web Developer
 
markwell 12. sep 2013 06:18:14 Pridružen od:
6. dec 2012
886 objav
587 113 21
#6

Opazil sem, da nisem konsitenten pri pisanju narekovajev. Enojni, dvojni...mi lahko kdo na kak preprosti način razloži razliko?



Ker recimo, zakaj obravnavamo enkrat $stevilka kot string z '$stevilka', potem pa ga evalviramo kot spremenljivko preko ""?:


$query="INSERT INTO testek VALUES('$stevilka')";
všeč(0) ni všeč(0) spam(0)
Supremacist mysogonist straight white male. Respect my pronouns!
 
SlimDeluxe 12. sep 2013 07:07:51 Pridružen od:
29. apr 2010
1223 objav
1022 144 9
#7

Tukaj imaš vse razloženo, sploh pod "variable parsing"

http://php.net/manual/en/language.types.string.php


všeč(1) ni všeč(0) spam(0)
Freelance Web Developer
 
markwell 12. sep 2013 07:58:35 Pridružen od:
6. dec 2012
886 objav
587 113 21
#8

Hvala Slim.



Bi lahko še pokomentiral primer? Je nujno uporabiti enojne narekovaje za $stevilka?


všeč(0) ni všeč(0) spam(0)
Supremacist mysogonist straight white male. Respect my pronouns!
 
SlimDeluxe 12. sep 2013 08:14:28 Pridružen od:
29. apr 2010
1223 objav
1022 144 9
#9

Z vidika pravilnosti MySQL stavka ja. Sicer, če je $stevilka integer ali float pa bi delovalo tudi brez enojnih navednic.


všeč(1) ni všeč(0) spam(0)
Freelance Web Developer
 
technolog 12. sep 2013 09:51:07 Pridružen od:
14. nov 2011
598 objav
768 300 22
#10

Ne, ravno obratno je. Če je $stevilka integer ali float mora bit brez narekovajev, deluje pa sicer tudi z.


všeč(1) ni všeč(0) spam(0)
Z linuxom že 7 let. Pro web development.
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se