<?php
$database="jayesh"; //database name
$first=$_POST['first'];//this values comes from html file after submitting
$last=$_POST['last'];
$con = mysqli_connect("localhost","root" ,"");//for wamp 3rd feild is balnk
if (!$con)
{
die('Could not connect: ' . mysqli_connect_error());
}
mysqli_select_db("$database", $con);
$query = "INSERT INTO info (first,last)VALUES ('$first','$last')";
mysqli_query($query);
echo "<script type='text/javascript'>\n";
echo "alert('you are Succesflly registered');\n";
echo "</script>";
mysqli_close();
?>
这是我的代码。我遇到了以下错误。 Plz的帮助。日Thnx
警告:mysqli_select_db()期望参数1为mysqli,第10行的C:\ wamp \ www \ New folder \ insert.php中给出的字符串
警告:mysqli_query()需要至少2个参数,1在第13行的C:\ wamp \ www \ New folder \ insert.php中给出
警告:mysqli_close()预计在第20行的C:\ wamp \ www \ New folder \ insert.php中给出1个参数,0
答案 0 :(得分:3)
它需要4个参数 第一个是主机,第二个用户,第三个密码和第四个数据库名称 mysqli_connect(“localhost”,“root”,“”,$ database);
答案 1 :(得分:1)
更改 -
$con = mysqli_connect("localhost","root" ,"", $database);
和 -
mysqli_query($con, $query);
答案 2 :(得分:0)
问题是mysqli_connect采用所有4个连接参数,格式为;
mysqli_connect("myhost", "myuser", "mypassw", "mybd");
我已在下面的代码中对此进行了更正。
<?php
// Set Database name;
$database = "jayesh";
$con = mysqli_connect("localhost", "root", "", $database);
if (!$con) {
die('Could not connect: ' . mysqli_connect_error());
}
$first = isset($_POST['first']) && strlen($_POST['first']) ? mysqli_real_escape_string($con, $_POST['first']) : '' ;
$last = isset($_POST['last']) && strlen($_POST['last']) ? mysqli_real_escape_string($con, $_POST['last']) : '' ;
$query = "INSERT INTO `info` (`first`, `last`) VALUES ('$first', '$last')";
mysqli_query($con, $query);
echo "<script type='text/javascript'>\n";
echo "alert('you are Succesflly registered');\n";
echo "</script>";
mysqli_close($con);
我在代码中也改变了一些注释;
要解决这个问题,我只是检查发布的变量是否已设置并且是否包含数据(strlen)。之后,你通过mysqli_real_escape_string抛出它来逃避它并使其安全插入数据库;
注意:由于mysqli_real_escape_string()要求第一个参数是数据库连接,因此必须将其移过数据库连接;
这只需要在其中放置$ con,因此它知道要关闭哪个连接。在复杂的系统中,有多个数据库正在运行中,错过连接可能会导致某个地方出现问题
注意:第一个参数的要求也扩展到mysqli_query()函数,该函数在上面的代码中也已更改。