ajaxphp调用localhost数据库返回错误

dy2hfwbg  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(239)

这个问题在这里已经有答案了

为什么我不能运行两个mysqli查询?第二个失败[重复](3个答案)
两年前关门了。
我正在制作一个web应用程序库,其中有一个按钮,单击该按钮时,会调用checkout()函数。此函数使用jquery将数据发布到php脚本。然后,这个php连接到localhost上的数据库(目前),并发送一个查询。
在mysql workbench中执行时,下面php中显示的查询可以完美地工作。当我试图从网页执行它时,我的问题就出现了。它与db用户和密码的连接很好,但查询本身失败。

html

<div class="col-xs-4 btn btn-default button" onclick="checkout();">
    Checkout
</div>

js公司

function checkout() {
    let result=$.ajax({
        type: "POST",
        url: "php/checkout.php",
        dataType: "text",
        //@TODO: add scanner functionality to populate isbn,
        //  add functionality to populate user
        data:
        {
            isbn: 1,
            user: 1
        },
        success: function(result) {
            //change #button-text to house result (for now)
            // @TODO: delete errorcheck when done
            $('#button-text').html(result);
            console.log(result);
        },
        error: function(xhr, status, error) {
            alert(status + ' ||| ' + error);
        }
    });
}

php

$dbconn = connectToDB($serverName, $dbName, $dbUser, $dbPass);
    // set is_available to false, update checkout and due
    // date, update current owner of book, set due_date to
    // current date + 14 days
    $query = "UPDATE books
                    SET is_available = false,
                        checkout_date = CURDATE(),
                        due_date = DATE_ADD(CURDATE(),
                        INTERVAL 14 DAY)
                    WHERE isbn = $isbn;

                    INSERT INTO currently_checked_out_books
                    (user_id, book_isbn, due_date)
                    VALUES (
                        $user,
                        $isbn,
                        DATE_ADD(CURDATE(), INTERVAL 14 DAY)
                    );";
    // $query = "show tables;"; // returns what you'd expect
    $result = $dbconn->query($query);

我试过的:

我反复检查了我的查询和数据库权限—我设置的db用户具有db管理器权限,这意味着它应该可以对数据库执行任何操作。如前所述,我还直接在mysql workbench中测试了我的查询,它工作正常。我唯一能想到的是,我的db用户没有正确设置,但是,如果有任何问题,它有太多的自由。
额外的信息和澄清提供的要求-如果我错过了任何重要的必要信息,请让我知道。

huwehgph

huwehgph1#

我认为你的问题是你的陈述不止一个 $query 但你用的是 $dbconn->query($query) 不支持官方文件中所述的多个声明:
必须使用mysqli\u multi\u query()执行多个语句或多个查询。语句字符串的各个语句用分号分隔。然后,必须获取执行语句返回的所有结果集。
因此你需要分开你的陈述或者离开 $query 原样和用途 $result = $dbconn->multi_query($query); .

相关问题