我正在使用 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, '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="6b180a0645181c020d1f2b0d020d1f0e0e050f020c021f0a07450804451e00" rel="noreferrer noopener nofollow">[email protected]</a>');
";
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 ,即使数据库中根本没有任何内容,我仍然收到“false”返回给客户端。
这样做的目的是在做任何事情之前先设置环境,以确保一切就位并正常工作,这个系统将来会改变,但现在我只需要让它工作
最佳答案
使用mysqli::multi_query()
而不是mysqli::query()
:
关于javascript - MySQL 和 AJAX,可以在其中之一中运行,但不能在另一个中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32567488/