如何将JSON代码导入MYSQL数据库?
我用jQuery自动完成function创建了这个表单。 自动完成列表中的所选品牌需要使用$ .ajax函数发送到PHP文件。 我的代码似乎不起作用,但我找不到错误。 我不知道为什么数据没有插入到MYSQL数据库中。 这是我的代码:
JQUERY:
$(document).ready(function() { $("#autocomplete").autocomplete({ minLength: 2 }); $("#autocomplete").autocomplete({ source: ["Adidas", "Airforce", "Alpha Industries", "Asics", "Bikkemberg", "Birkenstock", "Bjorn Borg", "Brunotti", "Calvin Klein", "Cars Jeans", "Chanel", "Chasin", "Diesel", "Dior", "DKNY", "Dolce & Gabbana"] }); $("#add-brand").click(function() { var merk = $("#autocomplete").val(); $("#selected-brands").append(" " + merk + ""); //Add your parameters here var param = JSON.stringify({ Brand: merk }); $.ajax({ type: "POST", async: true, url: "scripttohandlejson.php", contentType: "application/json", data: param, dataType: "json", success: function (good){ //handle success alert(good) }, failure: function (bad){ //handle any errors alert(bad) } }); return false; }); });
PHP文件: scripttohandlejson.php
{'Brand'}; $vraag = "INSERT INTO kijken (merk) VALUES ('$data_s')"; $voerin = mysql_query($vraag) or die("couldnt put into db"); <?
$arr_content = json_decode($json, true); $brand = $arr_content["Brand"]; $vraag = "INSERT INTO kijken (merk) VALUES ('" . $brand . "')";
编辑:
问题:在您的示例中,您的json_decode返回一个关联数组,因为您在函数调用中有参数’true’。 但是在下一行中,您试图通过尝试访问“它的’BRAND’属性来尝试将结果用作对象。
您所要做的就是从json_decode函数调用中删除true
,或者使用上面的代码。
注意:也编辑了SQL语句。
json_decode返回一个对象,而不是一个字符串,并且您正在尝试将其用作字符串,因此您可能在数据库中插入类似“Object()”的内容。
也许你可以做$ data_s = mysql_escape_string($ getcontent [‘Brand’]); 然后使用$ data_s代替。
PHP文件: scripttohandlejson.php
我没有检查其他可能的错误(比如……如果这个SQL有效吗?)。
无需将数据作为JSON发送。
在JS中更改此内容:
//Add your parameters here var param = JSON.stringify({ Brand: merk });
至:
var param ={Brand: merk};
在PHP将收到它:
$brand= $_POST['Brand'];