最后一个简单的问题,但我的代码无法正常运行。他没有将数据添加到我的数据库,而是跳转到连接不可能时显示的错误行。请帮助我,我非常接近完成我的项目。代码:
<html>
<head>
<title>Vanille</title>
</head>
<body>
<?php
include ("realhtmlinphpfile.php");
$link = mysqli_connect("localhost")
or die ("Fehler");
mysqli_select_db($link, "TestsRocks")
or die ("Verbindung nicht möglich...");
$Test1 = $_POST["Test1"];
$Test2 = $_POST["Test2"];
$Text3 = $_POST["Test3"];
$Test4 = $_POST["Test4"];
if($Test1 == "" or $Test2 == "" or $Test3 == "" or $Test4 == "") {
echo "FAIL";
} else {
$eintrag = "INSERT INTO TestsRocks
(test1, test2, test3, test4);
VALUES
('$Test1', '$Test2', '$Test3', '$Test4')";
}
mysql_close($verbindung);
?>
</body>
</html>
答案 0 :(得分:1)
您在代码中混合了mysql and mysqli
而不是mysql_close($verbindung)
使用mysqli
和连接变量
你必须使用
mysqli_close($link);
您mysqli_connet
参数
$link= mysqli_connect("localhost","my_user","my_password","my_db");
您必须执行插入查询
$eintrag = "INSERT INTO TestsRocks
(test1, test2, test3, test4);
VALUES
('$Test1', '$Test2', '$Test3', '$Test4')";
if (!mysqli_query($link,$eintrag)) {
die('Error: ' . mysqli_error($link));
}
在将数据插入数据库之前使用mysqli_real_escape_string($link, $_POST["Test1"]);
答案 1 :(得分:0)
您需要将数据库用户名,数据库密码和数据库名称传递给mysqli_connect,如下所示:
mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");
如果你有第二,第三和第四个参数的ini值,那么它也应该有效。
mysqli :: __ construct([string $ host = ini_get(“mysqli.default_host”) [,string $ username = ini_get(“mysqli.default_user”)[,string $ passwd = ini_get(“mysqli.default_pw”)[,string $ dbname =“”[,int $ port = ini_get(“mysqli.default_port”)[,string $ socket = ini_get(“mysqli.default_socket”)]]]]]])
取自here。请注意,mysqli_connect
是mysqli::__construct
另外,使用mysqli_ *函数代替mysql_ *函数。
您没有运行insert命令,也没有阻止SQL注入。