php - 我的 AJAX 代码不更新数据库

标签 php jquery mysql ajax sql-update

我正在开发一个聊天应用程序。

程序应该使用 AJAX 将用户输入的文本插入数据库。但是,它现在不起作用。我认为这是一个简单的错误(例如,我的代码中某处的变量名称错误)。请帮忙。

我在数据库中有一个表,我称之为chattest。字段如下:
1. Chat_Id(主键,自增,INT)
2. Chat_User_Id (INT)
3.Chat_Text(文本)

我有一个名为classes.php的文件,其中包含:

<?php

class chat {
private $Chat_Id, $Chat_User_Id, $Chat_Text;

public function getChatId(){
    return $this->Chat_Id;
}
public function setChatId($Chat_Id){
    $this->Chat_Id = $Chat_Id;
}

public function getChatUserId(){
    return $this->Chat_User_Id;
}
public function setChatUserId($Chat_User_Id){
    $this->Chat_User_Id = $Chat_User_Id;
}

public function getChatText(){
    return $this->Chat_Text;
}
public function setChatText($Chat_Text){
    $this->Chat_Text = $Chat_Text;
}


public function InsertChatMessage(){
    include "conn.php";

    $req=$bdd->prepare("INSERT INTO chattest (Chat_User_Id,Chat_Text) VALUES (:Chat_User_Id,:Chat_Text)");
    $req->execute(array(
        'Chat_User_Id'=>$this->getChatUserId(),
        'Chat_Text'=>$this->getChatText()
        ));

}

}

?>

insert_message.php文件或函数,其中包含:

<?php
session_start();

include "classes.php";
if(isset($_POST['ChatText'])) {
    $chat = new chat();
    $chat -> setChatUserId($_SESSION['id']);
    $chat -> setChatText($_POST['ChatText']);
    $chat -> InsertChatMessage();

}

?>

包含AJAX的聊天页面如下:

<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    
<link rel="stylesheet" href="style.css" type="text/css" />
<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
<title>Chat Application Home</title>
<script type="text/javascript">
    $(document).ready(function() {

        $("#ChatText").keyup(function(e) {
            //When We Press Enter Do
            if(e.keyCode == 13) {
                var ChatText = $("#ChatText").val();
                $.ajax({
                    type:'POST',
                    url:'insert_message.php',
                    data:{Chat_Text:"Test Chat"},
                    success:function(){

                        $("#ChatText").val("");
                    }


                });
            }

        });   

    });
</script>
</head>

<body>

<h2> Welcome <?php echo $_SESSION['fname']  ?> </h2>
</br></br>

<div id="ChatBig">
    <div id ="ChatMessages">
    </div>
    <textarea id="ChatText" name="ChatText"> </textarea>

</div>
</body>
</html>

最后,下面是连接到数据库的脚本,名为conn.php:

<?php

try{
$bdd = new PDO("mysql:host=localhost;dbname=dbtestt","root","")
}catch(Exception $e){
die("ERROR : ".$e->getMessage());
}
?>

请帮忙。

最佳答案

我发现了那个小 bug 。

在 conn.php 中,缺少 ;

conn.php 应该是

<?php

try{
$bdd = new PDO("mysql:host=localhost;dbname=dbtestt","root","");
}catch(Exception $e){
die("ERROR : ".$e->getMessage());
}
?>

谢谢大家的回复。

关于php - 我的 AJAX 代码不更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25391755/

相关文章:

php - 为什么 php 不显示更多数据?

javascript - window.location.replace不断重新加载页面,如何停止?

javascript - 将 Hammer.js 触摸手势与 jQuery SVG 缩放库集成

MySQL:将数据从 OldDB 普通表迁移到多对多关系

mysql - mysql 中表错误的 key 文件不正确

php - 如何更新 mongodb PHP 中的所有文档

php - 如何使用 robots.txt 禁止 Codeigniter 中的某些 Controller

javascript - 如何使用 jquery 更改连接到动态表单中的选择更改的值?

javascript - Jquery 每个按值排序

Mysql - 按列选择最高值