使用mysqli发送连接到MySQL数据库的问题

时间:2015-10-30 11:49:40

标签: php

最后一个简单的问题,但我的代码无法正常运行。他没有将数据添加到我的数据库,而是跳转到连接不可能时显示的错误行。请帮助我,我非常接近完成我的项目。代码:

<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>

2 个答案:

答案 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_connectmysqli::__construct

的别名

另外,使用mysqli_ *函数代替mysql_ *函数。

您没有运行insert命令,也没有阻止SQL注入。