Php从报告开始';意外';错误
我正在与我的学校项目进行php聊天。Php代码被分为两个文件和代码。第一个文件是file,其中是聊天窗口和输入消息的文本。这是第一个文件的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
$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。