Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php从报告开始';意外';错误_Php_Mysql_Mysqli - Fatal编程技术网

Php从报告开始';意外';错误

Php从报告开始';意外';错误,php,mysql,mysqli,Php,Mysql,Mysqli,我正在与我的学校项目进行php聊天。Php代码被分为两个文件和代码。第一个文件是file,其中是聊天窗口和输入消息的文本。这是第一个文件的php代码: <?php $connection = mysql_connect('localhost', 'root', 'root'); if (!$connection) { die('<b>Can\'t connect to database server

我正在与我的学校项目进行php聊天。Php代码被分为两个文件和代码。第一个文件是file,其中是聊天窗口和输入消息的文本。这是第一个文件的php代码:

<?php
            $connection = mysql_connect('localhost', 'root', 'root');
            if (!$connection) {
                die('<b>Can\'t connect to database server. Error message: ' . mysql_error() . '</b>');
            }

            $database = mysql_select_db('vaclavik', $connection);
            if (!$database) {
                $command = 'CREATE DATABASE vaclavik';
                if (mysql_query($command, $connection)) {
                    echo '<b>Database wasn\'t found. New one has been created. </b>';
                    mysql_close($connection);
                    $connection = new mysqli('localhost', 'root', 'root', 'vaclavik');
                    $command = 'CREATE TABLE chat(datum DATETIME, zprava TEXT)';
                    if (mysqli_query($connection, $command)) {
                        die('New table has been created!');
                    }
                    else {
                        die('Can\'t create new table!');
                    }
                }
                else {
                    die('Database wasn\'t found and new one can\'t be created!');
                }
            }
            mysql_close($connection);

            $connection = mysqli_connect('localhost', 'root', 'root', 'vaclavik');

            $command = 'SELECT * FROM chat';
            $result = mysqli_query($connection, $command);
            if(empty($result)) {
                $command = 'CREATE TABLE chat(datum DATETIME, zprava TEXT)';
                if (mysqli_query($connection, $command)) {
                        die('New table has been created');
                    }
                    else {
                        die('New table can\'t be created');
                    }
            }

            if (mysqli_num_rows($result) > 0) {
                while($row = $result->fetch_assoc()) {
                    echo '<b>' . $row["datum"] . ":</b> " . $row["zprava"] . "<br />";
                }
            }
            else {
                echo '<b>No message found. Write something! :)</b>';
            }
            mysqli_close($connection);
        ?>

这个代码有效。然后我创建表单来输入消息。它使用php代码重定向到另一个文件,以便将消息插入数据库。问题是,若我把代码放在并没有错误检测的地方,那个么它什么也不做。当我把一些错误保护放在那里时,php开始用代码中意外的字符报告解析错误。通常是“{”和“echo”

这是第二个文件的代码:

<?php
$message = $_POST["chatinput"];
$connection = mysqli_connect('localhost', 'root', 'root', 'vaclavik');
$command = "INSERT INTO chat (datum, zprava) VALUES (\'" . date("Y-m-d, h:i:sa") . "\', \'" . $message . "\')";
mysqli_query($connection, $command);
mysqli_close($connection);
echo "<script>window.location = \"../chat.php\"</script>";
?>


为什么要混合使用
mysql.*
mysqli.*
?只使用
mysqli.*
并切换到准备好的语句来解决问题。您不需要在双引号语句中转义单引号,因此您的
$command
查询格式不正确。使用准备好的语句和参数绑定,您就不会有任何问题艾恩伯,这个小错误花了我两个小时的时间才解决。它现在起作用了,非常感谢你:D。