【问题标题】:Why won't my AJAX call insert to the database?为什么我的 AJAX 调用不能插入数据库?
【发布时间】:2016-08-05 07:03:45
【问题描述】:

我有一个用于在数据库中存储信息的 ajax 函数。成功消息在控制台日志中消失,但实际上没有存储任何内容。有什么想法吗?

如果您希望我打开错误消息,请准确告诉我如何执行此操作,以及在哪个文件中。

AJAX(在单击按钮时关闭)

 var id = ranNum;
    //.cart-content is an item inside a shopping cart
    $('.cart-content').each(function() {
        //I know this is not the best way to grab data, but for now it's what I have to do
        var item = $(this).find('.item').text();
        var price = $(this).find('.price').text();

        //These return the proper text, so I'm grabbing the information fine.
        console.log("id: " + id);
        console.log("item: " + item);
        console.log("price: " + price);

        $.ajax({
            url : '../controllers/insertOrder.php',
            //I even added extra letters just in case I couldn't use the same word twice.
            data: {idd: id, itemm: item, pricee: price},
            type : 'POST',
            success : function(){console.log("success");},
            error : errorHandler
        });

    });

insertOrder.php(路径正确)

<?php
require_once '../../models/database.php';
require_once 'Order.php';

$order = new Order;
$order->insertOrder($_POST['idd'], $_POST['itemm'], $_POST['pricee']);

订单.php

class Order{

    public function __construct() {

    }

    public function insertOrder ($id, $item, $price) {

        $db = Dbclass::getDB();
        $query = "INSERT INTO orders (order_id, order_item, order_price)
               VALUES(:id, :item, :price)";          

        $statement = $db->prepare($query);
        $statement->bindParam(':id', $id, PDO::PARAM_INT, 11);
        $statement->bindParam(':item', $item, PDO::PARAM_STR, 50);
        $statement->bindParam(':price', $price, PDO::PARAM_STR, 10);

        $statement->execute();

    }

}

【问题讨论】:

  • 您是否尝试从 PDO 中回显错误?
  • 尝试从脚本返回响应以确保它被命中。我不确定你指定的亲戚是否可行。
  • @trickyzter 我在我为成功方法创建的控制台日志中收到“成功消息,所以它正在连接。我曾经有一个错误的路径,然后我在控制台日志中看到一个错误. 现在我看不到那个错误了。
  • @Machavity 我不确定我是否理解如何做到这一点。如果你说的是 database.php,我已经成功使用过这个类很多次了,所以我怀疑它给我带来了问题。
  • @JordanCarter 在execute() 之后尝试print_r($statement-&gt;errorInfo());

标签: javascript php sql ajax pdo


【解决方案1】:

想通了。我的 insertOrder.php 文件中的数据库路径不正确。哦!

【讨论】:

  • 所以这个问题对其他人来说完全没用。你应该删除它。
  • @Barmar 你确定吗?它解释了如何在某些 cmets 中显示错误。它显示了捕获此类错误所涉及的思考过程。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-04
  • 1970-01-01
  • 2019-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多