php和MySQL的问题

php和MySQL的问题,php,mysql,html,Php,Mysql,Html,我有两个表,用户日志是人们用他们的电子邮件和密码进行注册的地方,另一个表是用户名,人们在其中填写他们自己的个人资料 如何使用SQL查询插入表单中插入的数据 考虑到表用户引用了id为的表用户日志 我是说 User log Id Email Password User Id User_id fk id reference userlog(id) Name Surname 这是我登录的代码 <?php session_start(); if (isset($_SESSION['usu

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

如何使用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>';
    }
}

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

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

如果您的数据来自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();
    }
$servername=“localhost”;
$username=“yourUser”;
$password=“yourPass”;
$dbname=“youtDB”;
试一试{
$conn=newpdo(“mysql:host=$servername;dbname=$dbname”、$username、$password);
$sql=“插入用户日志(电子邮件、密码)
价值观_email@example.com“,‘一些安全的密码’”;
$conn->exec($sql);
$last_id=$conn->lastInsertId();
$userSql=“插入到用户日志(userId、name、lastName)值($last_id、'some_name'、'some_lastName')”;
$conn->exec($userSql);
}
捕获(PDO$e)
{
echo$sql。“
”$e->getMessage(); }
为什么不试试基本的谷歌搜索?你将在几秒钟内得到一个教程。或者提供一些代码警告:编写自己的访问控制层并不容易,而且有很多机会使它严重出错。请不要编写您自己的身份验证系统,因为任何现代的同类产品都具有强大的内置功能。至少要遵循并且永远不要将密码存储为纯文本。为什么要有两个表?数据似乎永远是一对一的关系。请提交您迄今为止尝试过的代码。我不知道您的评论是什么意思。实际上我使用PDO。$statement=$conexion->prepare('插入到prueba(id、nombre、Aparterno、amaterno、Profession、ciudad、perfilprofe、perfilperso、tel、cel)值中(null,:nombre,:apaterno,:amaterno,:profession,:ciudad,:perfilprof,:perfilperso,:tel,:cel););