问题php和MySQL

时间:2017-04-27 04:34:18

标签: php mysql html5

我有2个表,用户日志是人们使用他们的电子邮件和密码进行注册的地方,另一个表名为user,用户可以在其中填写自己的个人资料。

如何使用SQL查询插入在表单中插入的数据?

考虑到表用户使用带有id ...

的表用户日志进行引用

我的意思是

User log 
Id
Email
Password

User
Id
User_id fk id reference userlog(id)
Name
Surname

这是我登录的代码

<?php  
session_start();

if (isset($_SESSION['usuario'])) {
    header('Location: index.php');
}

$errores = '';

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $email = filter_var(strtolower($_POST['email']), FILTER_SANITIZE_STRING);
    $password = $_POST['password'];
    $password = hash('sha512', $password);

    try {
        $conexion = new PDO('mysql:host=localhost;dbname=DATABASE, 'USER', 'PASS');
    } catch (PDOException $e) {
        echo "Error:" . $e->getMessage();;
    }

    $statement = $conexion->prepare('
        SELECT * FROM userlog WHERE email = :email AND password = :password'
    );
    $statement->execute(array(
        ':email' => $email,
        ':password' => $password
    ));

    $resultado = $statement->fetch();
    if ($resultado !== false) {
        $_SESSION['usuario'] = $resultado;
        header('Location: index.php');
    } else {
        $errores .= '<li>Datos Incorrectos</li>';
    }
}

我创建一个var_dump()来查看$ resultado中的数组带来了什么,并且它使表格的数据更加明确,但是,当我想使用数据来填充输入时,它会失败

2 个答案:

答案 0 :(得分:1)

如果您的数据来自POST方法,请始终使用注意事项以避免SQL注入..

我将使用一个非常基本的例子。您可以增强此功能以供自己使用。

$servername = "localhost";
$username = "yourUser";
$password = "yourPass";
$dbname = "youtDB";

try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); 
$sql = "INSERT INTO Userlog (email, password)
VALUES ('some_email@example.com', 'some_safe_password')"; 

$conn->exec($sql);
$last_id = $conn->lastInsertId();
$userSql = "INSERT INTO Userlog (userId, name, lastName) VALUES ($last_id, 'some_name', 'some_lastName')";
$conn->exec($userSql);


}
catch(PDOException $e)
    {
    echo $sql . "<br>" . $e->getMessage();
    }

答案 1 :(得分:0)

您可以使用post方法传递数据。 试试这段代码。

$sql = "INSERT INTO users (Userlog, Id, Email, Password)
        VALUES ('".$_POST["Userlog"]."','".$_POST["Id"]."','".$_POST["Email"].",'".$_POST["Password"]."')";