Wat is er fout aan deze query?
Een script geeft een error bij deze query.
Nu denk ik dat het met dubbele 'gebruik te maken heeft.
Maar hoe kun je 'toch gebruiken zonder aftesluiten?
Nu denk ik dat het met dubbele 'gebruik te maken heeft.
Maar hoe kun je 'toch gebruiken zonder aftesluiten?
- Gebruik geen *, selecteer wat je wilt hebben.
- Variabelen buiten quotes.
- Hoe sla je ip adressen op?
- integers horen niet tussen quotes.
- Variabelen buiten quotes.
- Hoe sla je ip adressen op?
- integers horen niet tussen 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.
Kijk ook naar wat de anderen als adviezen geven. Een werkend script is niet altijd een goed/veilig script
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