我正在创建自己的应用程序。好的,让我们看一下代码......
<?php
define('DB_HOST', '127.0.0.1');
define('DB_NAME', 'sqltest');
define('DB_USER', 'sqltest');
define('DB_PASSWORD', 'sqltest');
$conn = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD)
or die ("failed to connect to db" . mysql_error());
$db = mysql_select_db(DB_NAME, $conn)
or die ("failed to connect to db" . mysql_error());
$v1 = @_POST['uname'];
$v2 = @_POST['pass'];
$v3 = @_POST['email'];
$query = "INSERT INTO userinfo (Username, Password, Email, userid)
VALUES ('$v1', '$v2', '$v3', 'NULL')";
$data = mysql_query($query);
if ($data === TRUE) {
echo "Registration successfully";
} else {
echo "Success";
}
你能看到INSERT查询吗?我传递了一些变量: $ v1,$ v2等。这些变量是 $ _ POST 的变量,用于获取用户数据并插入 >数据进入数据库。
我在这里面临的问题是当我将数据(uname,pass,email和* userid [自动])注入我的html表单时。数据未在数据库中显示,但userid以增量形式更改)。我希望你明白这一点。
我没有成功,但我尝试了所有我认识的事情。我真的不知道它有什么问题。
任何人都可以纠正这个问题并提供解释吗?
感谢。
答案 0 :(得分:3)
只是错字:
$v1 = @_POST['uname'];
$v2 = @_POST['pass'];
$v3 = @_POST['email'];
更改为:
$v1 = $_POST['uname'];
$v2 = $_POST['pass'];
$v3 = $_POST['email'];
&#34; @&#34; sign用于隐藏错误,如下所示:
$v1 = @$_POST['uname'];
答案 1 :(得分:3)
您的POST变量缺少$。尝试:
$v1 = @$_POST['uname'];
$v2 = @$_POST['pass'];
$v3 = @$_POST['email'];
顺便说一句,我不建议使用@来隐藏错误。
答案 2 :(得分:1)
您需要使用mysql_real_escape_string()
来避免SQL注入。
文档可用here。