【问题标题】:MySQL and AJAX, works in one but not the other [duplicate]MySQL和AJAX,在一个但不是另一个[重复]
【发布时间】:2015-12-10 14:43:17
【问题描述】:

我正在使用 AJAX 对包含要添加到数据库的信息的 PHP 脚本进行“加载调用”,脚本如下:

<?php

$create_tables = "
CREATE TABLE IF NOT EXISTS `user` (
`id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`name` varchar(255) NOT NULL UNIQUE,
`password` varchar(255) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `user_details`
(
`id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`email_address` varchar(255) NOT NULL UNIQUE,
`address1` varchar(500) NULL,
`address2` varchar(500) NULL,  
`address3` varchar(500) NULL,
`postcode` VARCHAR(10) NULL
) ENGINE=InnoDB AUTO_INCREMENT=2 CHARSET=latin1;

INSERT IGNORE INTO `user` (`id`, `name`, `password`) VALUES (1, 'admin', '704b037a97fa9b25522b7c014c300f8a');
INSERT IGNORE INTO `user_details` (`id`, `email_address`) VALUES (1, 'sam.swift@fifteendigital.co.uk');
";

function cre($query)
{
    $link = new mysqli();
    $link->real_connect("localhost", "root", "", "overr");
    return $link->query($query) ? "true" : "false";
}

print cre($create_tables);

?>

AJAX 是这样调用的:

function _ajax( u, t )
{
    $.ajax( {
        url: u,
        type: "GET",
        success: function ( r )
        {
            $( "#test" ).html( r );
            console.log( r );
            return r;
        },
        beforeSend: function ()
        {
            $( t ).html( "Loading" );
        }
    } );
}

$( document ).ready( function ()
{
    _ajax( "aj/tables.php", "#null" );
} );

当我在 phpmyadmin 中调用查询时,它运行良好,但是当我从加载页面通过 AJAX 调用它时,控制台被记录为“false”,我怎样才能让它执行脚本并返回 true ,即使数据库中没有任何内容,我仍然会通过向客户端返回“假”。

这样做的目的是在做任何事情之前设置环境,以确保一切就绪并正常工作,这个系统将来会改变,但现在我只需要让它工作

【问题讨论】:

  • 你不能在单个查询中执行多个语句。
  • 分离查询,一一执行!

标签: javascript php jquery mysql ajax


【解决方案1】:

使用mysqli::multi_query() 而不是mysqli::query()

http://php.net/manual/en/mysqli.multi-query.php

【讨论】:

  • 完美,尽我所能,正确地下降!
【解决方案2】:

试试,

  1. 分离每个查询或使用multiquery 功能。

  2. 避免使用INSERT IGNORE,因为您将无法收到错误。请改用INSERT...ON DUPLICATE

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-13
    • 1970-01-01
    • 2013-09-14
    • 2016-09-18
    • 2015-07-24
    • 2017-10-13
    • 1970-01-01
    相关资源
    最近更新 更多