我是第一次做PHP编码。我收到了以下错误:
错误:
警告:mysqli_real_escape_string()期望参数1为mysqli, 在第9行的C:\ xampp \ htdocs \ 331002.php中给出的布尔值
警告:mysqli_real_escape_string()期望参数1为mysqli, 在第10行的C:\ xampp \ htdocs \ 331002.php中给出的布尔值
警告:mysqli_real_escape_string()期望参数1为mysqli, 在第11行的C:\ xampp \ htdocs \ 331002.php中给出的布尔值
注意:未定义索引:c:\ xampp \ htdocs \ 331002.php中的empID在线 12
警告:mysqli_real_escape_string()期望参数1为mysqli, 在第12行的C:\ xampp \ htdocs \ 331002.php中给出的布尔值
警告:mysqli_query()期望参数1为mysqli,boolean 在第17行的C:\ xampp \ htdocs \ 331002.php中给出
警告:mysqli_error()期望参数1为mysqli,boolean 在第18行的C:\ xampp \ htdocs \ 331002.php中给出
这是我的代码:
<?php
$con=mysqli_connect("localhost","root","root","student");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// escape variables for security
$FName = mysqli_real_escape_string($con, $_POST['firstName']);
$LName = mysqli_real_escape_string($con, $_POST['lastName']);
$Salary = mysqli_real_escape_string($con, $_POST['salary']);
$ID = mysqli_real_escape_string($con, $_POST['empID']);
$sql="INSERT INTO PersonInfo (FName, LName, empID, Salary)
VALUES ('$FName', '$LName','$ID','$Salary')";
if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
mysqli_close($con);
?>
答案 0 :(得分:3)
通常的“检查连接”模式如下:
<?php
$con=mysqli_connect("localhost","root","root","student");
// Check connection
if (false === $con) {
// die will "finish" the script
die("Failed to connect to MySQL: " . mysqli_connect_error());
}
mysqli_real_escape_string
需要一个您似乎没有的有效连接。
答案 1 :(得分:1)
该消息清楚地告诉您mysqli_real_escape_string的第一个参数是布尔值的数据类型。如果您不了解数据类型之间的差异,我建议您查阅它们,了解它们对于使用任何语言进行编程都是必不可少的。如果您查看文档,您将看到它&#34; mysqli_connect()或mysqli_init()&#34;返回的链接标识符。
您对mysqli_connect()的调用返回false,您想要找出原因并在返回false时处理该情况。猜猜是否存在连接错误。
在php手册的页面上甚至有一个例子显示:
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
答案 2 :(得分:1)
您的问题出现在脚本的顶部:
$con=mysqli_connect("localhost","root","root","student");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// escape variables for security
$FName = mysqli_real_escape_string($con, $_POST['firstName']);
您已检查过mysqli连接,但是如果出现连接错误,您的脚本会回复它并继续无论如何。如果存在连接错误,则脚本应die
,或者至少跳过数据库交互,因为它无法继续数据库事务:
$con = mysqli_connect("example.com", "user", "password", "database");
if (mysqli_connect_errno($con)) {
die("Failed to connect to MySQL: " . mysqli_connect_error());
}