Kezdőoldal » Számítástechnika » Weblapkészítés » Melyik a jobb, biztonságosabb...

Melyik a jobb, biztonságosabb módszer változó query string-be illesztésére az alábbiak közül és miért?

Figyelt kérdés

Mondjuk így kezdem:

$id = mysqli_real_escape_string($mysqli,$id);

De utána melyik a 3 közül?

1, $qry = "select * from tabla where id='$id'";

2, $qry = "select * from tabla where id='".$id."'";

3, $qry = printf("select * from tabla where id=%d", $id);


2016. dec. 12. 13:07
 1/6 anonim ***** válasza:
83%

Az 1. és 2. ekvivalens, de az aposztróf miatt nem működik számokkal (vagy ha működik, az SQL szerver tök feleslegesen fog kasztolgatni), a 3. pedig csak számokkal működik (%d miatt).


Használj prepared statement-et és nem kell ilyeneken görcsölni.

2016. dec. 12. 13:44
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:

1-2 ugyanaz.

3. kiírja outputra és nem a $qry változóba.

2016. dec. 12. 14:02
Hasznos számodra ez a válasz?
 3/6 A kérdező kommentje:
Azt hittem az első kettő között van valami eltérés.
2016. dec. 12. 20:56
 4/6 anonim ***** válasza:
#3 van. A második több helyet foglal. ;)
2016. dec. 13. 08:19
Hasznos számodra ez a válasz?
 5/6 A kérdező kommentje:

:)

Amúgy néztem a változó bindelést,csak azt nem értem,hogy csak PDO-ban működik a 'select * from table where id=:id' módi?

Mert mysqli-ben nem akart menni,vagy én szúrtam el valamit? Ott csak ilyesmit láttam a doksiban:

$stmt = $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");

$stmt->bind_param('sssd', $code, $language, $official, $percent);

De ez meg nem valami jól olvasható kódot produkál ehhez képest:

$sth = $dbh->prepare('SELECT name, colour, calories

FROM fruit

WHERE calories < :calories AND colour = :colour');

$sth->bindParam(':calories', $calories, PDO::PARAM_INT);

$sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12);


Valószínű első is nem annyira a prepared statementre gondolt,hanem a PDO-ra.

2016. dec. 13. 08:33
 6/6 anonim ***** válasza:
Az a legbiztonságosabb, ha prepared statement-et használsz! Akkor nem kell real_escape_string sem.
2016. dec. 15. 22:58
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!