我有朋友告诉我改变一些代码。
其中一个告诉我将我的代码更改为:
intval($_GET['id']);
另一个告诉我改为:
db_escape($_GET);
谁是对的,为什么?
答案 0 :(得分:2)
Intval专门针对数字。使用intval,您可以将任何非有效数字转换为“0”。使用db_escape(),您可以准备要插入数据库的字符串和其他内容。 所以两者都是正确的,这取决于你想要插入什么:-)如果你想插入一个数字或者你想要选择一个带有id的条目
$query = "SELECT * FROM table WHERE id = " . intval($GET_["id"]);
然后你应该使用intval。如果要插入文本,则应使用db_escape。
$query = "INSERT INTO table (stringCol) VALUES('" . db_escape($_POST['string']) . "')";