我想从查询字符串中提供一条SQL语句,但是我所有的努力都会导致单引号和斜杠转义。PHP撇号和查询字符串
0
A
回答
2
首先,确保你确实想要这样做。 SQL注入攻击已经成熟。
如果您想要对MySQL数据库运行语句,只需使用phpMyAdmin或MySQL工作台即可。
0
假设你正在使用MySQL,使用mysql_real_escape_string()
http://www.php.net/manual/en/function.mysql-real-escape-string.php
0
我怎么能在一个通用的 的方式实现这一点?
所有查询都必须在您的脚本中硬编码。
当然,它们中的一些可以动态构建,但是只允许您创建DATA动态,而不是控制结构。
所以,它必须是这样的:
$name=mysql_real_escape_string($_POST['name']);
if ($id = intval($_POST['id'])) {
$query="UPDATE table SET name='$name' WHERE id=$id";
} else {
$query="INSERT INTO table SET name='$name'";
}
或本:
if (!isset($_GET['id'])) {
$query="SELECT * FROM table";
} else {
$id = intval($_GET['id'];
$query="SELECT * FROM table WHERE id=$id";
}
或什么的。
当然,插入的数据必须妥善转义,转换或binded。
但有时我们需要使用动态的操作符或标识符。原理是一样的:所有的东西都必须在你的脚本中进行硬编码,没有什么可以直接从客户端传递给SQL查询。
说,做一个动态的排序,你可以使用这样的代码
$orders=array("name","price","qty");
$key=array_search($_GET['sort'],$orders));
$orderby=$orders[$key];
$query="SELECT * FROM `table` ORDER BY $orderby";
或组装动态WHERE:
$w=array();
if (!empty($_GET['rooms'])) $w[]="rooms='".mysql_real_escape_string($_GET['rooms'])."'";
if (!empty($_GET['space'])) $w[]="space='".mysql_real_escape_string($_GET['space'])."'";
if (!empty($_GET['max_price'])) $w[]="price < '".mysql_real_escape_string($_GET['max_price'])."'";
if (count($w)) $where="WHERE ".implode(' AND ',$w); else $where='';
$query="select * from table $where";
相关问题
- 1. 如何从搜索字符串中返回包含撇号的查询结果字符串不包含撇号
- 2. 使用preg_match_all查找带有撇号字符串的字符串
- 3. SQL Server,如何查询包含多个撇号的字符串?
- 4. HTML5&符号和查询字符串
- 5. 如何在使用PHP的字符串中查找撇号?
- 6. 加号查询字符串
- 7. 用撇号插入字符串值
- 8. 如何匹配字符串与撇号?
- 9. 如何处理字符串撇号DotNet.highcharts
- 10. 撇号中的jquery/JavaScript字符串
- 11. 从字符串中删除撇号
- 12. 带有撇号的Android字符串
- 13. 退出字符串的撇号强制
- 14. 处理字符串中的撇号
- 15. 从字符串中删除撇号python
- 16. PHP file_get_contents()和查询字符串
- 17. 获取URL查询字符串和PHP
- 18. 加密查询字符串和PHP
- 19. C#SQL查询和撇号的
- 20. python - 挣扎与字符串编码和重音引号/撇号
- 21. PHP:与查询字符串
- 22. PHP查询字符串
- 23. PHP printr查询字符串
- 24. 查询字符串PHP
- 25. 撇号替换MySQL查询
- 26. 带撇号的SELECT查询
- 27. 在字符串中使用撇号更新字符串
- 28. Java:使用String.indexOf()检查撇号字符
- 29. 查询字符串中有两个问号和两个&符号?
- 30. 将带撇号的字符串从PHP传递到JavaScript函数
请告诉我们你的代码,你的输入和你的输出。 – 2010-06-01 15:54:57
如果我正确地阅读你的问题,那么我会强烈建议不要在查询字符串中使用SQL查询。 – 2010-06-01 15:56:10
是的,除此之外,你不应该那样做...工作与行动... sorta像?action = del => switch $ action case:del =>查询 – Tobias 2010-06-01 15:57:52