Gå til innhold

SQL Spøring med string i?


Anbefalte innlegg

Skrevet

Hei!

Tenkte jeg skulle friske opp PHP + MySql kunnskapen, å husker ikke engang hvodan jeg bruker en string i en mysql spørring,

 

dette er vel feil?

$queryUsername = "SELECT username FROM Users WHERE username='".$Username."'";

 

 

Hjelp?

Videoannonse
Annonse
Gjest Slettet+142
Skrevet

<?php

$tekst = "test-input. f.eks ifra brukerinput.";
$streng = mysql_real_escape_string($tekst); // Sikre alltid data fra brukerinput!

$sql = "SELECT * FROM nyheter WHERE innhold LIKE '%{$streng}%'";
$query = mysql_query($sql);
.......

?>

 

Slik kan det gjøres..

Skrevet (endret)

Heisann..

 

Svaret ditt er at når du bruker dobbel fnutter (herme tegn, ") så kan du skriv variabler rett inn.

 

f.eks:

 

$user = "per";

 

$sql = "SELECT id FROM users WHERE user='$user '"; // Fungerer

$sql = 'SELECT id FROM users WHERE user="$user "'; // Fungerer IKKE fordi ' ikke "parser" stringen for variabler e.t.c

$sql = 'SELECT id FROM users WHERE user=" '. user .' "'; // Fungerer fordi . binder sammen to ting 'streng'.$var

$sql = "SELECT id FROM users WHERE user='".$user ."'"; // Fungerer og, samme som over.

 

Og som han over nevner så er det også lurt å sikre userinput med mysql_real_escape_string

 

Mer om: mysql_real_escape_string

Mer om: Single og doble fnutter

Mer om: Binding av strenger

 

Om dette hjalp deg, vennligst sett tittel på førstepost til [LØST] <tittel>

Endret av phpp
Skrevet (endret)
<?php

$bruker = $_POST['brukernavn'];
$streng = mysql_real_escape_string($bruker);

$queryUsername = "SELECT username FROM Users WHERE username='{$tekst}'";
$query = mysql_query($queryUsername);

?>

Endret av MrNeeon
Skrevet

Anbefaler å kode på engelsk for global utviklingspotensiale og om du begynner med dette på jobb er det nesten et krav at du koder med engelsk kode. Jeg jobber med programmering i jobben og bruker mange utlandske. Selv kodet jeg i norsk før. Var såååå sikker på at jeg aldri trengte å kode engelsk siden jeg bare spurte engelske. Jeg gikk på en smell når 2 engelske skulle ha koden. Måtte oversette hele dritte..

Skrevet
$sql = "SELECT id FROM users WHERE user='$user '"; // Fungerer

Skal man være helt sikker så bør man sette variabler i { }. Det forteller PHP hvor variablen start og slutter.

 

$sql = "SELECT id FROM users WHERE user='{$user}'"; // Fungerer

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...