如果我想使用“ INSERT INTO”将内容添加到表中,则不会收到错误消息,并且表也不会被填充。我是PHP新手。解释会很好。该数据库在XAMPP上运行。
我不知道该怎么办。我已经使用过另一个表,但是它不起作用。用户应具有对该表的完全访问权限。名称也匹配。
<?php
$username = $_POST["username"];
$passwort = $_POST["passwort"];
$mail = $_POST["mail"];
$passwort2 = $_POST["passwort2"];
$pass = sha1($passwort);
$db = mysqli_connect("localhost", "phptest1", "o84XM5wxo65QBjkF", "phptest1");
if($passwort == $passwort2) {
echo "Password is correct.";
$db = "INSERT INTO user (Username, Mail, Password) VALUES ('$username', '$mail', '$pass')";
} else if(!($passwort == $passwot2)) {
echo "Password is not correct";
} ?>
答案 0 :(得分:0)
变量$ db实际上包含有关连接的信息。您无法按照尝试的方式将查询插入数据库中
您可以使用$ db(以您的情况为准)来检查连接是否已正确建立,然后,如果一切正常,则可以使用mysqli_query()
将查询注入到数据库中。
您可以这样做:
<?php
if(isset($_POST['submit'])){ //You have to check if your submit button is pressed
$username = $_POST["username"];
$passwort = $_POST["passwort"];
$mail = $_POST["mail"];
$passwort2 = $_POST["passwort2"];
$pass = sha1($passwort);
$db = mysqli_connect("localhost", "phptest1", "o84XM5wxo65QBjkF", "phptest1");
if(!$db){
die('Connection could not be established! Check provided information');
}
if($passwort == $passwort2) {
echo "Password is correct.Inserting query now";
$query = "INSERT INTO user (Username, Mail, Password) VALUES ('$username', '$mail', '$pass')";
$result = mysqli_query($db, $query); //keep $result for debugging purposes.
} else {
die("Password is not correct");
} //no need for else if as there are only 2 conditions.
if(!$result){ //check if query was successful.
die('Query Error');
}
echo "Query Updated successfully";
}
?>
此代码非常简单,仅用于测试目的。
我只是想向您展示将查询发送到数据库的方式。为了避免潜在的注入攻击,您最好从用户检索数据时使用crypt()
等其他加密技术,当然还应使用mysqli_real_escape_string()
之类的功能。
检查this post,了解有关防止注射的更多信息。
希望有帮助。