我正在尝试通过链接发送数据,例如在链接中使用...?id = 3。比我在PHP中使用GET来检索它。但是,当我尝试将它放入查询时,它不起作用
$select= mysql_query("SELECT * FROM products WHERE id= $_GET['id'] ");
答案 0 :(得分:1)
您必须确保该变量是一个整数,否则您很容易受到SQL注入攻击。
$id = (int) $_GET['id'];
$select= mysql_query("SELECT * FROM products WHERE id= $id");
PHP允许在引用字符串中使用简单的变量引用,但不允许像您一样执行数组引用。您可以通过将表达式括在大括号中来完成复杂的变量插值,例如@ user3624411建议......但请不要。这仍然容易受到SQL注入攻击,你不能这样做。如果你是一名电工,你会因安装不安全的电线而引发火灾。
理想情况下,您会切换到PDO并使用查询参数,我鼓励您在第一时间了解这一点。但我理解你在时间限制下,重写所有数据库代码是不切实际的。
答案 1 :(得分:0)
试试这个:
$id = $_GET['id'];
$select= mysql_query("SELECT * FROM products WHERE id= '$id' ");
或者您可以使用$select= mysql_query("SELECT * FROM products WHERE id= " .$_GET['id'] . ")";
但我建议你不要使用GET方法和MYSQL:使用POST和MYSQLI或PDO。