Wat is er fout aan deze query?
Nu denk ik dat het met dubbele 'gebruik te maken heeft.
Maar hoe kun je 'toch gebruiken zonder aftesluiten?
- Variabelen buiten quotes.
Karl Karl op 06/04/2011 19:47:32:
- integers horen niet tussen quotes.
NB.: Voor de mensen die dit nog niet weten, als integers zonder quotes in je SQL query opneemt, let er dan extra op dat je de variable valideert met filter_var, is_numeric (let op floats!), ctype_digit of een vergelijkbare routine. Doe je dit niet, dan loop je SQL injection risico; mysql_real_escape zal je niet beschermen in dit geval.
Gewijzigd op 06/04/2011 20:02:47 door Gerard M
Code (php)
1
$sql = "SELECT * FROM yourls_url WHERE ip ='$ip' ORDER BY timestamp DESC limit '.($page*$eachPage).','.$eachPage.'";
Het probleem in dit geval is het verschil tussen de " en de '
Je opent de string met een " en vervolgens bij de limit wil je hem sluiten met een ' dat werkt niet.
Code (php)
1
$sql = "SELECT * FROM yourls_url WHERE ip ='".$ip."' ORDER BY timestamp DESC limit ".($page*$eachPage).",".$eachPage;
dit zou al beter moet werken. Ik heb ook $ip even buiten quotes gezet.
Bedankt! nu werkt het script helemaal! Ik ga even kijken wat ik precies fout deed.
Kijk ook naar wat de anderen als adviezen geven. Een werkend script is niet altijd een goed/veilig script
Ja ik ga zeker kijken wat er nog kan worden verbeterd en wat er fout ging.
Wouterjan Muchu op 06/04/2011 21:29:13:
Ja ik ga zeker kijken wat er nog kan worden verbeterd en wat er fout ging.
SQL leren
En kijk uit voor sql injecties