如何解决以下PHP警告和错误?

时间:2015-11-21 12:17:18

标签: php mysql apache

我正在编写一些PHP脚本来将学生信息添加到学生数据库中。 以下是将学生信息添加到数据库的代码。

<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,
        lunch_cost) VALUES (?, ?, ?,
        ?, ?, ?, ?, ?, ?, ?,?)";

        $stmt = mysqli_prepare($dbc, $query);



        mysqli_stmt_bind_param($stmt, "sssssssissd", $f_name,$l_name, $email, $street, $city,$state, $zip, $phone, $b_date,$sex, $lunch);

        mysqli_stmt_execute($stmt);

        $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 />';
            echo mysqli_error();

            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 />";

        }

    }

}

?>

当我运行程序时,我收到以下消息:

警告:mysqli_stmt_bind_param()要求参数1为mysqli_stmt,第157行的C:\ xampp \ htdocs \ studentadded.php中给出布尔值

警告:mysqli_stmt_execute()要求参数1为mysqli_stmt,第159行的C:\ xampp \ htdocs \ studentadded.php中给出布尔值

警告:mysqli_stmt_affected_rows()要求参数1为mysqli_stmt,在第161行的C:\ xampp \ htdocs \ studentadded.php中给出布尔值 发生错误

警告:mysqli_error()预计在第174行的C:\ xampp \ htdocs \ studentadded.php中只有1个参数,0

警告:mysqli_stmt_close()期望参数1为mysqli_stmt,第176行的C:\ xampp \ htdocs \ studentadded.php中给出布尔值

mysqli_connect.php:

<?php
$servername = "localhost";
$username = "studentweb";
$password = "turtleneck";
$database = "test3";

$dbc = @mysqli_connect($servername, $username, $password, $database);
if (!$dbc) {
 die("Connection failed: " . mysqli_connect_error());
}
echo " Connected Successfully";

?>

当我在phpmyadmin中检查我的数据库时,它还没有使用输入的数据进行更新。

请帮忙。

1 个答案:

答案 0 :(得分:0)

在这看来你有更多的参数

 mysqli_stmt_bind_param($stmt, "sssssssissd", $f_name,$l_name, $email, $street, $city,$state, $zip, $phone, $b_date,$sex, $lunch); 

尝试

mysqli_stmt_bind_param($stmt, $f_name,$l_name, $email, $street, $city,$state, $zip, $phone, $b_date,$sex, $lunch);