我试图使用下面的代码,但它给了我错误。PHP SQL语句不接受变量
代码:
$id = $_GET['id'];
$action = '['command'=>'get','target'=>'location']';
$query = "UPDATE ZeusUsers SET action = '$action' WHERE notification_id = '$id'";
$result = mysqli_query($link,$query) or exit("Error in query: $query. " . mysqli_error());
错误:
Parse error: syntax error, unexpected 'command'
如果我改变$行动标准的文字语句工作正常,它只是似乎与单引号和方括号问题。
我也尝试过在单引号前使用\,它仍然失败。
任何想法?
这个$动作应该是什么?语法完全被破坏。它应该是一个数组吗? – Erik 2015-04-02 13:44:33
这是我以后需要调用的JSON,因此将其存储在数据库中,直到需要调用它为止。 – 2015-04-02 13:46:09
如果'$ id'是一个int,那么这是防止注入的最小值。 '$ id =(int)$ _ GET ['id'];'。其他防止注入的方法,http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php – chris85 2015-04-02 13:53:01