MySQL和php连接错误

时间:2015-05-17 06:36:19

标签: php mysql

我使用php,mysql和xampp服务器创建了一个表单。问题是,无论我在这个表单中写什么,它都表明"消息无法发送"甚至当我使用http://localhost/phpmyadmin/检查我的数据库时,消息不存在。这是代码。 P.S我跟着一个视频教程,它完全相同,让我完全失去了。请帮忙。

连接代码为:

<?php

$db_host = 'localhost';
$db_user= 'root';
$db_pass= 'the password';

$db_name= 'chat';

if ($connection= mysql_connect($db_host, $db_user, $db_pass)) {

    echo "Connected to Database Server...<br  />";

    if ($database= mysql_select_db($db_name, $connection)) {
        echo "Database has been selected... <br  />";
    } else {
        echo "Database was not found. <br  />";
    }
} else {
    echo "Unable to connect to MYSQL server.<br  />";
}
?>

功能代码是:

<?php

    function get_msg() {

        $query = "SELECT 'Sender', 'Message' FROM 'chat' . 'chat'"; 

        $run = mysql_query($query);

        $messages= array();

        while($message = mysql_fetch_assoc($run)) {
            $messages[]= array ('sender' =>$message['Sender'], 
                                'message'=>$message['Message']);
        }

        return $messages;

    }

    function send_msg($sender, $message) {

        if(!empty($sender) && !empty($message)){

            $sender  = mysql_real_escape_string($sender);
            $message  = mysql_real_escape_string($message);

            $query = "INSERT INTO 'chat'.'chat' VALUES (null, '{$sender}', '$message')";

            if($run = mysql_query($query)) {
                return true;
            } else {
                return false;
            }

        } else {
            return false;
        }
    }
?>

3 个答案:

答案 0 :(得分:2)

我在SQL查询中发现了问题:

:first-child

您必须在那里指定字段,SQL查询无效。你也使用了错误的转义字符。这有效:

$query = "INSERT INTO 'chat'.'chat' VALUES (null, '{$sender}', '$message')";

如果使用AUTO_INCREMENT:

,则不必指定空值
$query = "INSERT INTO `chat`.`chat` (`ID`, `sender`, `message`) VALUES (null, '{$sender}', '$message')";

请使用MySQLi而不是MySQL,因为它已被弃用。此外,数据库不应指定两次,简单使用:

$query = "INSERT INTO `chat`.`chat` (`sender`, `message`) VALUES ('{$sender}', '$message')";

答案 1 :(得分:2)

$query = "INSERT INTO `chat`.`chat` VALUES (null, '{$sender}', '$message')";

请注意`并且它不是&#39;

答案 2 :(得分:2)

我是PHP和MySQL的新手所以我倾向于在出错时总是明确地退出或死在MySQL上。

tr.append('<td></td>')

这样我就把它扔在了我的脸上,直到我把它固定下来并纠正错误之后再也无法进一步了。

private static final Pattern SPACES = Pattern.compile("\\s+"); private static final Pattern STAR_TO_END = Pattern.compile("\\s*\\*.*"); public static String[] read(final String filename) { final Path path = Paths.get(filename); try ( // UTF-8 by default; excellent final Stream<String> lines = Files.line(path); ) { return lines.map(line -> STAR_TO_END.matcher(line).replaceFirst("")) .flatMap(SPACES::splitAsStream) .collect(Collectors.toArray(String[]::new)); } } 中的数字只是在代码中找到错误的位置,因此是唯一的。

我知道当你了解你的东西时,这会产生反效果,但对我而言,这是一个非常宝贵的学习工具,还有php.net dev.mysql.com和stackoverflow.com