我创建了一个表单,以便学生可以输入他们的信息。学生输入的所有数据都将存储在MYSQL数据库中。但是,在将数据输入表单字段后单击提交按钮时,屏幕上会显示一些错误消息。这些是以下错误消息:
警告:mysqli_stmt_bind_param()要求参数1为mysqli_stmt,布尔值在第317行的C:\ xampp \ htdocs \ MYSQL \ studentadded.php中给出
警告:mysqli_stmt_execute()要求参数1为mysqli_stmt,布尔值在第327行的C:\ xampp \ htdocs \ MYSQL \ studentadded.php中给出
警告:mysqli_stmt_affected_rows()期望参数1为mysqli_stmt,第331行的C:\ xampp \ htdocs \ MYSQL \ studentadded.php中给出布尔值 发生错误
警告:mysqli_error()预计在第357行的C:\ xampp \ htdocs \ MYSQL \ studentadded.php中只提供1个参数,0
警告:mysqli_stmt_close()要求参数1为mysqli_stmt,第361行的C:\ xampp \ htdocs \ MYSQL \ studentadded.php中给出布尔值
这是代码:
<!DOCTYPE html>
<html>
<head>
<title>Add Student</title>
</head>
<body>
<?php
if(isset($_POST['submit'])){
$data_missing = array();
if(empty($_POST['first_name'])){
// Adds name to array
$data_missing[] = 'First Name';
} else {
// Trim white space from the name and store the name
$f_name = trim($_POST['first_name']);
}
if(empty($_POST['last_name'])){
// Adds name to array
$data_missing[] = 'Last Name';
} else{
// Trim white space from the name and store the name
$l_name = trim($_POST['last_name']);
}
if(empty($_POST['email'])){
// Adds name to array
$data_missing[] = 'Email';
} else {
// Trim white space from the name and store the name
$email = trim($_POST['email']);
}
if(empty($_POST['street'])){
// Adds name to array
$data_missing[] = 'Street';
} else {
// Trim white space from the name and store the name
$street = trim($_POST['street']);
}
if(empty($_POST['city'])){
// Adds name to array
$data_missing[] = 'City';
} else {
// Trim white space from the name and store the name
$city = trim($_POST['city']);
}
if(empty($_POST['state'])){
// Adds name to array
$data_missing[] = 'State';
} else {
// Trim white space from the name and store the name
$state = trim($_POST['state']);
}
if(empty($_POST['zip'])){
// Adds name to array
$data_missing[] = 'Zip Code';
} else {
// Trim white space from the name and store the name
$zip = trim($_POST['zip']);
}
if(empty($_POST['phone'])){
// Adds name to array
$data_missing[] = 'Phone Number';
} else {
// Trim white space from the name and store the name
$phone = trim($_POST['phone']);
}
if(empty($_POST['birth_date'])){
// Adds name to array
$data_missing[] = 'Birth Date';
} else {
// Trim white space from the name and store the name
$b_date = trim($_POST['birth_date']);
}
if(empty($_POST['sex'])){
// Adds name to array
$data_missing[] = 'Sex';
} else {
// Trim white space from the name and store the name
$sex = trim($_POST['sex']);
}
if(empty($_POST['lunch'])){
// Adds name to array
$data_missing[] = 'Lunch Cost';
} else {
// Trim white space from the name and store the name
$lunch = trim($_POST['lunch']);
}
if(empty($data_missing)){
require_once('mysqli_connect.php');
$query = "INSERT INTO students (first_name, last_name, email,
street, city, state, zip, phone, birth_date, sex, date_entered,
lunch_cost, student_id) VALUES (?, ?, ?,
?, ?, ?, ?, ?, ?, ?, NOW(), ?, NULL)";
$stmt = mysqli_prepare($dbc, $query);
/*i Integers
d Doubles
b Blobs
s Everything Else */
//below is line 317 where the error is happening
mysqli_stmt_bind_param($stmt, "ssssssisssd", $f_name,
$l_name, $email, $street, $city,
$state, $zip, $phone, $b_date,
$sex, $lunch);
//below is line 327 where the error is happening
mysqli_stmt_execute($stmt);
//below is line 331 where the error is happening
$affected_rows = mysqli_stmt_affected_rows($stmt);
if($affected_rows == 1){
echo 'Student Entered';
mysqli_stmt_close($stmt);
mysqli_close($dbc);
} else {
echo 'Error Occurred<br />';
//below is line 357 where the error is happening
echo mysqli_error();
//below is line 361 where the error is happening
mysqli_stmt_close($stmt);
mysqli_close($dbc);
}
} else {
echo 'You need to enter the following data<br />';
foreach($data_missing as $missing){
echo "$missing<br />";
}
}
}
?>
<form action="http://localhost/studentadded.php" method="post">
<b>Add a New Student</b>
<p>First Name:
<input type="text" name="first_name" size="30" value="" />
</p>
<p>Last Name:
<input type="text" name="last_name" size="30" value="" />
</p>
<p>Email:
<input type="text" name="email" size="30" value="" />
</p>
<p>Street:
<input type="text" name="street" size="30" value="" />
</p>
<p>City:
<input type="text" name="city" size="30" value="" />
</p>
<p>State (2 Characters):
<input type="text" name="state" size="30" maxlength="2" value="" />
</p>
<p>Zip Code:
<input type="text" name="zip" size="30" maxlength="5" value="" />
</p>
<p>Phone Number:
<input type="text" name="phone" size="30" value="" />
</p>
<p>Birth Date (YYYY-MM-DD):
<input type="text" name="birth_date" size="30" value="" />
</p>
<p>Sex (M or F):
<input type="text" name="sex" size="30" maxlength="1" value="" />
</p>
<p>Lunch Cost:
<input type="text" name="lunch" size="30" value="" />
</p>
<p>
<input type="submit" name="submit" value="Send" />
</p>
</form>
</body>
</html>
答案 0 :(得分:0)
我认为您的连接文件mysqli_connect.php
以下是我的参考资料
define("DB_HOST", "localhost");
define("DB_USERNAME", "username");
define("DB_PASSWORD", "password");
define("DB_NAME", "database name");
$dbc = mysqli_connect(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);
通过这个连接参数,我已经执行了你的代码及其工作。
另请将行echo mysqli_error();
更改为echo mysqli_error($dbc);
mysqli_error接受一个参数,即连接链接。