【发布时间】:2018-12-02 23:19:39
【问题描述】:
我正在尝试将数据插入 phpmyadmin 数据库。 它没有给出任何错误,但是当我查看 php 时,我的管理员没有插入任何数据:
代码如下:
<?php //get the data and assign to variables
if (isset($_POST['submit'])) {
$username = $_POST["Username"];
$email = $_POST["Email"];
$password = $_POST["Password"];
$gender = $_POST["Gender"];
$bestKnowLanguage = $_POST["Languages"];
$DOB = $_POST["DOB"];
$DOB_Splitted = preg_split("/-/", $DOB);
$DOB_Year = $DOB_Splitted[0];
$DOB_Month = $DOB_Splitted[1];
$DOB_Date = $DOB_Splitted[2];
$DOB_Formatted = date('d-m-y',strtotime($_POST['DOB']));
echo "$username<br>";
echo "$email<br>";
echo "$password<br>";
echo "$gender<br>";
echo "Best Known Language ".$bestKnowLanguage.'<br>';
echo "$DOB<br>";
if (!empty($_POST['languages'])) {
foreach ($_POST['languages'] as $value) {
echo $value.' ';
}
}
}
?>
数据库连接:
<?php
$conn = mysqli_connect("localhost", "root", "", "coders");
$sql = "INSERT INTO coder_system(email,username,password,gender,DOB,known_language,best_known_language) VALUES ('$email','$username','$password','$gender','$DOB_Formatted','$bestKnowLanguage','$bestKnowLanguage')";
if(mysqli_query($conn,$sql)) {
echo "Successfull";
}
mysqli_close($conn);
?>
【问题讨论】:
-
您确定所有数据点都已发布吗?你能分享你的HTML吗>
-
我确信这些值不为空,因为当我打印它们时,我得到了输入的值...
-
"password" 是 SQL 中的保留字。我在某处读到,您应该在列名中使用反引号以防止出现问题(例如,
`password`) -
与您的问题无关,但很重要:阅读有关 XSS 和 SQL 注入以及如何在 PHP 上防止它的信息。共享代码容易受到这些类型的攻击,不应在面向公众的环境中使用。