php - 我的 PHP 表单发送数据,但 sql 显示所有列零记录

标签 php mysql

PHP 表单发送数据,但 SQL 在所有列中显示零。

我检查了我的代码是否正确并且打印了结果,但是当我将此数据发送到数据库时,所有列的结果都显示为 0。出生日期仅显示年份而不是完整日期。

这是 SQL 的结果:

enter image description here

这是我的 PHP 代码:

<?php 
        include('../dbcon.php');     //database included
        if (isset($_POST['signup'])) {

        $uname = $_POST['uname'];
        $email = $_POST['email'];
        $fname = $_POST['firstname'];
        $lastName = $_POST['lastname'];
        $dob = $_POST['dob'];
        $gender = $_POST['gender'];
        $password = $_POST['password'];

        $qry = "INSERT INTO `registration`(`uname`, `email`, `fname`, `lname`, `dob`, `gender`, `password`) VALUES ('$uname','$email','$fname','$lastName','$dob','$gender','$password')" ; //query taken from the select section of sql form registration.
        $run = mysqli_query($dbcon, $qry); //run variable for running the query. $dbcon is database variable 

        if ($run == true) {
            echo "data inserted";    
        }
        else
        {
            echo "error occurred in registration";
        }
}
?>

最佳答案

正如其他人指出的那样,您不会转义代码,因此当任何人使用带单引号的名称或密码时,该人就可以完全控制您的数据库。因此,不要在 SQL 命令中使用 PHP 变量,也不要使用 mysqli。使用 PDO 和准备好的语句。它们会自动转义所有内容,甚至检查数据类型是否正确(至少有一点)。

要回答您的问题,表的结构是什么(哪些列是 varchar、int、date...任何唯一的约束...)并且您可以发布一个无法插入的示例数据集用你的代码?

关于php - 我的 PHP 表单发送数据,但 sql 显示所有列零记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50825801/

相关文章:

php - 使用 jQuery 动态更新表字段的首选方法?

mysql - SQL "chained"查询?

php - 您可以用 case 指定要在 MySQL 中使用的连接吗?

php - 通过 PHP 获取 MySQL 数据库输出到 XML

php - mysql取数组,表结果

php - 根据不同表中的数据创建时间线

php - ffmpeg视频编码进度条

php - 如何处理大量的 Cron 作业

php - mysql 5.7 在中等 sql 中比 mysql 5.6 慢很多

mysql 5.5 - 数据库定期崩溃(每周 1-2 次)