insert into语句,对于php来说,是一个字符串,php可以将变量嵌入字符串中
成都创新互联公司是一家专业提供未央企业网站建设,专注与网站建设、成都做网站、html5、小程序制作等业务。10年已为未央众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。
而对于mysql来说,那就是sql命令语句了!
语句格式是:
insert into 表名称 (字段名称集) value (字段值集)
需要注意的是,在字段集中,值的表示方式有加引号和不加引号的区别,这在于数据库字段类型所决定
示例:
$sql = "insert into table_name( time, a, b) values( '{$t}', {$x}, {$y} )";
mysql_query( $sql );
改成{$_POST['Region'.$jc]},
原先的{$_POST['Region".$jc."']},{}里的“”是相对独立的,不合外面的“”配对,也就是说“”就是单引号包含的一串字符串中的字符,所以,显而易见的PHP不会对".$jc."做concat处理,只是作为一串字符。
你说的只是php代码中可能会允许你使用注入语句,但是一般来说,网站防注入都是在链接数据库的类中加入了转换,也就是说把注入语句的关键字都加上了转义字符。比如你遇到的这种情况,就是被防注入了。
关于你这个问题:
问:输入框中的SQL语句应该如何写?
条件:数据库表、字段全已知,输入框长度不限。
我只能跟你说,你可以在输入框中加入;,/这种符号,让语句解析的时候出现问题,让php把sql语句拼合成两个或两个以上。这样你就可以在第二条语句之后加入你想要执行的命令了。
如果这种方法没有效果,你只能使用溢出的方式来注入!
不行的,变量是要加大括号的,或者使用字符串连接符连接2个字符串。
1如果你的$meal是一个变量、mealnum是字符型的数据的列,就这样写:
$result
=
mysql_query("select
*
from
{$res}
where
mealnum=‘{$meal}’");
2如果你的$meal是一个变量、mealnum是数字型的数据的列,就这样写:
$result
=
mysql_query("select
*
from
{$res}
where
mealnum={$meal}");注意大括号外没单引号。
3如果你的$meal就职一个字符串、mealnum是字符型的数据的列,就这样写:
$result
=
mysql_query("select
*
from
{$res}
where
mealnum=‘\$meal’");
4如果你的$meal就职一个字符串、mealnum是数字型的数据的列,那么就会错误了;
另外:
你已经说了$meal是一个字符型,所以就必须加两个单引号,如果是数字型就不需要单引号。