php - 如何将用户数据传递到 SQL 查询中?

标签 php mysql sql

<分区>

我正在创建自己的应用程序。好的,让我们看看代码...

<?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 的变量,用于获取用户数据并插入that> 数据存入数据库。

我在这里面临的问题是当我将数据(uname, pass, email, and *userid [automatic]) 注入(inject)到我的 html 表单中时。数据未显示在数据库中,但 userid 以增量形式更改)。我希望你明白这里的要点。

我没有成功,但我尝试了所有我知道的事情。我真的不知道它有什么问题。

任何人都可以更正此问题并提供解释吗?

谢谢。

最佳答案

只是打字错误:

$v1 = @_POST['uname'];

$v2 = @_POST['pass'];
$v3 = @_POST['email'];

更改为:

$v1 = $_POST['uname'];

$v2 = $_POST['pass'];
$v3 = $_POST['email'];

“@”符号用于隐藏错误,如下所示:

$v1 = @$_POST['uname'];

关于php - 如何将用户数据传递到 SQL 查询中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47373667/

相关文章:

mysql - SQL 查询未获得包含多个 AND 的结果

mysql更新专栏

php - XAMPP mailtodisk 功能

php创建目录

mysql - SQL语句获取从现在起接下来两天的日期

javascript - 用jsp更新数据库

php - 如何在 Zend Studio 10 中开发移动应用程序

php - 如何使用 IOS (Swift) 和 laravel 后端制作 Messenger 应用程序?消息不立即

MySQL:选择评论及其回复数

sql - 如何在Drupal中使用类似查询