私信  •  关注

Anton

Anton 最近回复了
5 年前
回复了 Anton 创建的主题 » 将JSON数组发送到MySQL数据库

试试这个JS

$(function () {
        $('#orderForm').on( 'submit', function ( event ) {
            event.preventDefault();
            var myData = [],
                keys = ['item', 'qty', 'price'],
                url = this.action;

            $( '#orderTable' ).find( 'tr:gt(0)' ).each( function ( i, row ){
                    var oRow = {};
                    $( row ).find( 'td' ).each( function ( j, cell ) {
                            oRow[keys[j]] = $( cell ).text();
                    } );
                    myData.push( oRow );
            } );

            console.log( myData );
            console.log( JSON.stringify( myData ) );
            data_to_server = JSON.stringify(myData);
        });
        $.post("*your_php_file*", {
            data: data_to_server;
        }).done(function (data_returned) {
            // any your code
        });         
});

似乎你的PHP代码不匹配-试图 serialize() 而不是 json_decode()

嗯,你在这个问题上问了很多问题,所以你能做什么:

  1. 如果您想要mysql执行的操作的全局计数器,那么

    显示状态

将返回服务器的所有计数器,包括用于以下操作的计数器

Com_insert 
Com_insert_select 
Com_replace
Com_replace_select
Com_select 
Com_update

您只需检查这些值是否执行了任何此类操作

  1. 监视插入、更新、替换等的另一种方法是使用触发器( https://dev.mysql.com/doc/refman/8.0/en/trigger-syntax.html )文档中的示例清楚地显示了触发器在哪里做得最好——作为增加局部计数器(变量)的方法。但您仍然应该记住触发器是特定于当前操作/表的。

  2. 说到边缘案例。是的,例如交易和程序。程序可以包括上面的许多操作。所以你需要检查一下。

  3. 一般来说,从数据库外部监视诸如insert这样的原子操作并不是最好的主意。您应该依赖于db means on that(触发器、变量、全局计数器)