将用户插入到SQL数据库中的问题

蛋白:

我想做一个简单的登录和注册页面,但是每次我尝试登录用户时,它都告诉我它无法执行查询。我使用mariadb服务器。

这是插入

$sql="INSERT INTO userid  VALUES ( {$_POST['usname']} , {$_POST['firstname']} , {$_POST['lastname']} , {$_POST['wordpass']} , '' )"; 

这是登录部分

    <form action="thankyou.php" method="post">
        <div>
            <label for="uname">Choose an Username: </label>
            <input type="text" id="uname" name="usname" pattern="[a-z]{3-15}" placeholder="Username">
            <div class="tinytext"> Username must be at least 3 characters long and at most 15 characters long, containing only lowercase letters </div>
        </div>
        <div>
            <label for="fname"> Enter First Name: </label>
            <input type="text" id="fname" name="firstname" pattern="[a-z]{3-15}" placeholder="First Name">
            <div class="tinytext"> First Name must be at least 3 characters long and at most 15 characters long, containing only lowercase letters</div>        
        </div>
        <div>
            <label for="lname"> Enter Last Name Name: </label>
            <input type="text" id="fname" name="lastname" pattern="[a-z]{3-15}" placeholder="Last Name">
            <div class="tinytext"> Last Name must be at least 3 characters long and at most 15 characters long, containing only lowercase letters</div>     
        </div>
        <div>
            <label for="pwd"> Enter Password: </label>
            <input type="password" id="pwd" name="wordpass" minlenght="8" maxlenght="30" placeholder="Password">
            <div class="tinytext"> Password must be at least 8 characters long and at most 30 characters long</div>     
        </div>
        <div>
            <button onclick="window.location.href='thankyou.php'">Submit</button>
        </div>
    </form>
brown_lukas:

除了您的表单问题之外,您的SQL还将转换为错误的SQL语句。

让我们假设:

usname = myusername
firstname = myfirstname
lastname = mylastname
wordpass = mypass

将转换为:

INSERT INTO userid  VALUES (myusername, myfirstname, mylastname, mypass, '')

如果您的所有值都不是字符串,将导致SQL错误!应该:

INSERT INTO userid  VALUES ('myusername', 'myfirstname', 'mylastname', 'mypass', '')

这是你的错误

BUUUT,您应该阅读有关SQL-INJECTION的信息,因为如果直接将它发送给DB,那么您将获得什么!

准备语句示例(使用PDO)

<?php
// open new PDO connection
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);

// prepare your data
$data = [
  'username' => $_POST['usname']
  'firstname' => $_POST['firstname']
  'lastname' => $_POST['lastname']
  'password' => $_POST['wordpass']
];

// create prepared statement to prevent SQL-injection
$sql = "INSERT INTO userid (username, firstname, lastname, password) VALUES (:username, :firstname, :lastname, :password)";
$stmt = $conn->prepare($sql);

// execute statement and persist to DB
$stmt->execute($data);

其他示例可以在这里找到:https : //www.w3schools.com/php/php_mysql_prepared_statements.asp

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

问题使用弹簧启动与thymeleaf在Java将用户添加到数据库

Laravel:将用户记录插入数据库需要很长时间,但是我的数据库很快

将用户登录详细信息存储到Laravel中的数据库

有关将用户当前位置保存到数据库中的问题

如何使用JS将用户输入插入Azure SQL数据库

将用户数据库连接保存在我的数据库中

将表单数据插入到mysql数据库中(可能是作用域问题)

问题在数据库中插入数据

将用户输入编码到数据库中是一种好习惯吗?

将用户角色放置在数据库中的方法

如何使用PHP SDK将来自Facebook Canvas的用户数据插入到使用SQL的数据库中

数据库设计:如何将用户的新闻偏好存储在MySQL数据库中?

将用户输入从文本框插入数据库(使用mysql从PHP到PHPMYADMIN)

数据未插入到Codeigniter中的数据库中

无法获得新的用户注册,无法使用Devise Gem将用户创建到数据库

使用逗号将用户名插入数据库

从表中复制数据并插入到不同的 SQL Server 数据库中

如何根据用户拥有的存储在 firebase 数据库中的属性将用户引导到不同的主页?

PHP 通过 curl 获取数据并插入到 SQL 数据库中

输入类型文本数据未插入到 sql 数据库中

使用php将用户输入的数据存储到数据库时出错

使用sql命令将数据插入数据库的问题

LDAP 成功登录后,如何将用户详细信息存储到数据库中?

如何防止每次页面重新加载时将用户数据插入到数据库中?

在 Laravel 中将用户播种到数据库的问题

如何使用 PHP 7 将用户输入数据作为“日期”类型提取到我的 SQL 数据库中?

无法将用户输入插入 MySQL 数据库

验证后如何将用户数据存储到Firbase数据库中?

在数据库中插入数据的问题andoid studio