PHP 表单发送数据,但 SQL 在所有列中显示零。
我检查了我的代码是否正确并且打印了结果,但是当我将此数据发送到数据库时,所有列的结果都显示为 0。出生日期仅显示年份而不是完整日期。
这是 SQL 的结果:
这是我的 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/