你说的只是php代码中可能会允许你使用注入语句,但是一般来说,网站防注入都是在链接数据库的类中加入了转换,也就是说把注入语句的关键字都加上了转义字符。比如你遇到的这种情况,就是被防注入了。
创新新互联,凭借十多年的成都网站设计、成都做网站、外贸网站建设经验,本着真心·诚心服务的企业理念服务于成都中小企业设计网站有上1000+案例。做网站建设,选成都创新互联。
关于你这个问题:
问:输入框中的SQL语句应该如何写?
条件:数据库表、字段全已知,输入框长度不限。
我只能跟你说,你可以在输入框中加入;,/这种符号,让语句解析的时候出现问题,让php把sql语句拼合成两个或两个以上。这样你就可以在第二条语句之后加入你想要执行的命令了。
如果这种方法没有效果,你只能使用溢出的方式来注入!
这种一般是sql语句的错误。你将php变量改为值之后将sql语句放到phpmyadmin或其他mysql工具里试一下是否能查到
把来自表单的数据插入数据库
现在,我们创建一个 HTML 表单,这个表单可把新记录插入 "Persons" 表。
这是这个 HTML 表单:
html
body
form action="insert.php" method="post"
Firstname: input type="text" name="firstname" /
Lastname: input type="text" name="lastname" /
Age: input type="text" name="age" /
input type="submit" /
/form
/body
/html
当用户点击上例中 HTML 表单中的提交按钮时,表单数据被发送到 "insert.php"。"insert.php" 文件连接数据库,并通过 $_POST 变量从表单取回值。然后,mysql_query() 函数执行 INSERT INTO 语句,一条新的记录会添加到数据库表中。
下面是 "insert.php" 页面的代码:
?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("my_db", $con);
$sql="INSERT INTO Persons (FirstName, LastName, Age)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";
mysql_close($con)
?
方法一:
1. yii默认的编码方式是utf-8, 若想改变其编码方式需要在main.php文件中加上'charset'='GB2312', 这样才能改变函数的输出的编码方式
2. sql server 2000 的编码方式默认为本地GB2312编码方式, 对数据库进行操作时要注意编码的方式
3. web页面的编码相应的需要变为GB2312
4. 文件保存时需要保存为GB2312编码,这样php文件中的中文字符才能正常解析
方法二:
1. 通过iconv函数对数据进行转码
iconv('GB2312','UTF-8',$data)
SQL文件,你可以这样导入MySQL中:
首先把SQL文件(假设名为abc.sql)复制到MySQL\bin目录下;
打开命令提示符,转到MySQL\bin的目录,输入命令:
mysql -u root -p db_name abc.sql
回车后,要求你输入密码。密码正确后就把数据导入数据库中了。
说明:
-u root 表明使用的帐号为root
-p 有密码。
db_name abc.sql 将abc.sql导入到数据库db_name中。
如果这种方法在你的机子上不适用的话,那就只有试试phpMyAdmin了。
?php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn ){
die('连接失败: ' . mysqli_error($conn))
;}
echo '连接成功br /'; // 设置编码,防止中文乱码mysqli_query($conn , "set names utf8");
$runoob_title = '学习 Python';
$runoob_author = 'RUNOOB.COM';
$submission_date = '2016-03-06';
$sql = "INSERT INTO runoob_tbl ".
"(runoob_title,runoob_author, submission_date) ".
"VALUES ".
"('$runoob_title','$runoob_author','$submission_date')";
mysqli_select_db( $conn, 'RUNOOB' );$retval = mysqli_query( $conn, $sql );
if(! $retval ){
die('无法插入数据: ' . mysqli_error($conn))
;}
echo "数据插入成功\n";
mysqli_close($conn);
?
按照步骤开始,多看PHP手册。