Ik heb een simpele query en wil daar in order by doen via PDO
nu heb ik hier http://stackoverflow.com/...ng-prepared-pdo-statement gelezen dat het niet mogelijk is via prepared statement. nu vraag ik me af wat is wel de juiste manier?
hier komt het op neer:
echter werkt dit niet dus dacht ik het zo:
Dit resulteert in:
Hoe moet dit wel, of moet ik me geen zorgen maken (ondanks dat het USER_INPUT is) en kan er niks fout gaan?
het is voorbeeldcode
nu heb ik hier http://stackoverflow.com/...ng-prepared-pdo-statement gelezen dat het niet mogelijk is via prepared statement. nu vraag ik me af wat is wel de juiste manier?
hier komt het op neer:
PHP:
1
2
3
4
5
6
7
8
| $orderByField = 'field1 ASC'; if(isset($_GET['orderByField']) && !empty($_GET['orderByField'])){ $orderBy = $_GET['orderByField'] . ' ' $_GET['orderBy']; } $query = 'SELECT * FROM table WHERE a = b ORDER BY :order'; $statement->prepare($query); //$statement is pdo class $statement->bindValue(':order', $orderBy); //de rest |
echter werkt dit niet dus dacht ik het zo:
PHP:
1
2
3
4
5
6
7
| $orderByField = 'field1 ASC'; if(isset($_GET['orderByField']) && !empty($_GET['orderByField'])){ $orderBy = $_GET['orderByField'] . ' ' $_GET['orderBy']; } $query = 'SELECT * FROM table WHERE a = b ORDER BY ' . mysql_real_escape_string($orderBy) . ''; $statement->prepare($query); //$statement is pdo class //de rest |
Dit resulteert in:
code:
1
| mysql_real_escape_string() [<a href='function.mysql-real-escape-string'>function.mysql-real-escape-string</a>]: Access denied for user 'ODBC'@'localhost' (using password: NO) |
Hoe moet dit wel, of moet ik me geen zorgen maken (ondanks dat het USER_INPUT is) en kan er niks fout gaan?
het is voorbeeldcode
[Voor 2% gewijzigd door Oid op 17-06-2011 14:19. Reden: Verkeerde URL]