据我所知,在 PHP 中,您一次只能执行一个插入语句:(如果这严重错误,请不要继续阅读其余部分 :))
这不会插入任何行:
$query = "insert into users (email) values ('test1');insert into users (email) values ('test2'); ";
$result = mysql_query($query);
而这将插入一行:
$query = "insert into users (email) values ('test1');";
$result = mysql_query($query);
首先,到目前为止我所说的是否正确?
如果是这样,这是否意味着不可能进行类似于(只是猜测)的 SQL 注入:
$_GET['bad_var'] = '1");drop table users;'
$query = "insert into users (email) values (".$_GET['bad_var'].")";
$result = mysql_query($result);
这将导致insert into users (email) values ("1");drop table users;
或者每个查询假设的一个语句在这里证明是正确的