警告:mysqli_stmt_init()期望参数1为mysqli,给定null

问题描述 投票:-3回答:2

我正在为网站提供聊天功能,并且对PHP不好:

<?php

if (isset($_POST['send'])) {
    require 'database.php';

    $input = $_POST['input'];
} else {
    $sql = "INSERT INTO chatsys (chat) VALUES (?)";
    $stmt = mysqli_stmt_init($conn);
    if (!mysqli_stmt_prepare($stmt, $sql)) {
        header("index.html?error=sqlerror");
        exit();
    } else {
        mysqli_stmt_bind_param($stmt, "sss", $input);
        mysqli_stmt_execute($stmt);
        header("index.html?request=success");
        exit();
    }
}
{
    mysqli_stmt_close($stmt);
    mysqli_close($conn);
}

和数据库代码:

<?php

$servername = "localhost";
$dBUsername = "root";
$dBPassword = "";
$dBName = "chatsys";

$conn = mysqli_connect($servername, $dBUsername, $dBPassword, $dBName);

if (!$conn) {
    die("Connection failed: ".mysqli_connect_error());
}
?>

这导致:

注意:未定义的变量:第11行的C:\ Users \ John Doe \ Desktop \ server \ htdocs \ php \ message \ chat.php中的conn警告:mysqli_stmt_init()期望参数1为mysqli,在第11行的C:\ Users \ John Doe \ Desktop \ server \ htdocs \ php \ message \ chat.php中给出null警告:mysqli_stmt_prepare()期望参数1为mysqli_stmt,在第12行的C:\ Users \ john doe \ Desktop \ server \ htdocs \ php \ message \ chat.php中给出空值。

我做错了什么?

我正在为网站提供聊天功能,并且对PHP不好:

php mysqli
2个回答
1
投票

首先,不要责怪PHP,因为它是一种功能强大且易于使用的服务器端语言,请尝试近距离接触,您会喜欢的。


1
投票

您使代码过于复杂。您不需要所有这些大括号或if语句。如果启用了错误报告,则无需检查mysqli调用的返回值。

© www.soinside.com 2019 - 2024. All rights reserved.