Php 将JavaScript数组数据插入MySQL数据库的问题
请看一下下面的代码片段,并告诉我为什么无法将数组值插入数据库。在Js文件中,我有:Php 将JavaScript数组数据插入MySQL数据库的问题,php,jquery,ajax,mysqli,Php,Jquery,Ajax,Mysqli,请看一下下面的代码片段,并告诉我为什么无法将数组值插入数据库。在Js文件中,我有: <script> var arr = ["foo", "2015/11/04", "Jill", "Smith", "60"]; var serializedArr = JSON.stringify( arr ); $("#loader").on("click", function(){ var upload = $.ajax({
<script>
var arr = ["foo", "2015/11/04", "Jill", "Smith", "60"];
var serializedArr = JSON.stringify( arr );
$("#loader").on("click", function(){
var upload = $.ajax({
type: "POST",
url: "loader.php",
data: {array:serializedArr},
cache: false,
beforeSend: function() {
}
});
});
及
但我无法加载数据,甚至页面上没有错误消息 问题在于您是JSON。在通过AJAX请求发送数组之前,先对数组进行字符串化。这意味着array=“[“foo”、“2015/11/04”、“Jill”、“Smith”、“60”]”,从技术上讲,这不是一个有效的JSON对象 尝试将数组包装在js对象中,然后将其字符串化。比如
var arr = {data: ["foo", "2015/11/04", "Jill", "Smith", "60"] };
然后试试看
$array = json_decode($_POST['array']).data;
success
,error
句柄,将结果/错误输出到控制台json\u解码
var arr=[“foo”、“2015/11/04”、“吉尔”、“史密斯”、“60”];
$(“#loader”).load('load.php',{arr:arr});
load.php:
<?php
$arr = $_POST['arr'];
$insert_row = $mysqli->query("INSERT INTO `models` (name, date, nip, tip, age)
VALUES($arr[1], $arr[2], $arr[3], $arr[4], $arr[5])");
?>
您可以在数据库中添加类似的值。我希望$mysqli=newmysqli('DB_主机'、'DB_用户'、'DB_密码'、'DB_名称')代码>到fail@hjpotter92,谢谢,但你的意思是什么?在发出ajax请求时,你在控制台中看到了什么吗?正如@hjpotter92所说,对mysqli的调用使用的是字符串,而不是之前定义的constantsNo,控制台中没有任何内容!当您处理请求时,$\u POST['array']
中到底有什么内容?谢谢您,但我在这里感到困惑!那么关于数据:{array:serializedArr},
呢?谢谢hjpotter92,这是可行的,但这里有一个问题!代码正在为name
插入0
,该名称必须是foo
,但其他名称是correct@Behseini放置一个var\u转储($array)代码>并检查您得到的结果。但我正在发布数据!那么如何使用var\u dump($array)
将console.log
放入$.ajax
调用的成功处理程序中。我真的很想学习这个调试!那么console.log
什么?
var arr = {data: ["foo", "2015/11/04", "Jill", "Smith", "60"] };
$array = json_decode($_POST['array']).data;
$array = json_decode( $_POST['array'] );
$mysqli = new mysqli( DB_HOST, DB_USER, DB_PASSWORD, DB_NAME );
$insert_row_stmt = $mysqli->prepare( "INSERT INTO `models` (name, date, nip, tip, age) VALUES(?, ?, ?, ?, ?)");
$insert_row_stmt->bind_param( 'ssssi',
$array[0],
$array[1],
$array[2],
$array[3],
$array[4]
);
$insert_row = $insert_row_stmt->execute();
var upload = $.ajax({
type: "POST",
url: "loader.php",
data: {array:serializedArr},
cache: false,
success: function(d) {
console.log(d);
}
});
<div id="loader"></div>
<script src="jquery.min.js"></script>
<script>
var arr = ["foo", "2015/11/04", "Jill", "Smith", "60"];
$("#loader").load('load.php',{arr:arr});
</script>
<?php
$arr = $_POST['arr'];
$insert_row = $mysqli->query("INSERT INTO `models` (name, date, nip, tip, age)
VALUES($arr[1], $arr[2], $arr[3], $arr[4], $arr[5])");
?>