PHP通过json对象在mysql中插入数据
我想通过PHP将一些数据从jQueryMobil.listwidget发送到mysql数据库 我获取并发布我的列表项,如下所示:PHP通过json对象在mysql中插入数据,php,mysql,json,html,jquery-mobile,Php,Mysql,Json,Html,Jquery Mobile,我想通过PHP将一些数据从jQueryMobil.listwidget发送到mysql数据库 我获取并发布我的列表项,如下所示: function getItems() { var listview_array = new Array(); $( "#itemList li" ).each(function(index) { listview_el = new Object(); listview_el.id =
function getItems()
{
var listview_array = new Array();
$( "#itemList li" ).each(function(index) {
listview_el = new Object();
listview_el.id = index;
listview_el.name=$(this).text();
listview_el.owner="owner";
listview_array.push(listview_el);
});
var stringifyObject = JSON.stringify(listview_array);
//alert(stringifyObject);
$.ajax({
type: "POST",
dataType: 'json',
url: "insert.php",
data: { mydata: stringifyObject },
});
//showItems();
}
我想将我的json对象添加到一个mysql数据库/表中。在我的请求下,我的数据被发送,但if(prepStmnt)从未成功
<?php
$con = new mysqli($servername, $username, $password, $dbname);
if (!$con) {
die('Could not connect: ' . mysqli_error($con));
}
echo "preps";
if($preparedStatement = $con->prepare('INSERT INTO Einkaufsliste (item, owner) VALUES (:name, :owner)')){
$preparedStatement->execute(json_decode($_POST["mydata"], true));
$preparedStatement->close();
echo "done";
};
$con->close();
?>
您能告诉我为什么数据库中没有存储数据吗?MySQLi不支持命名参数
if($preparedStatement = $con->[...snip...] (:name, :owner)')){
^^^^^^^^^^^^^
这在MySQLi中是完全非法的,因此您的准备失败,而其他一切都落在脚本的末尾,因为您没有错误检查
$prepare = $con->prepare(...);
if (!$prepare) {
die(mysqli_error($con));
}
一个适当的mysqli准备的声明应该是
$stmt = $con->prepare('INSERT ... VALUES (?, ?)');
注意?
占位符
永远不要假设你的查询会成功。即使您的sql实际上是正确的,查询失败的方式也有无数种。始终假设失败,检查失败,并将成功视为惊喜。您没有绑定变量
:name
和:owner
,因此没有插入它们,如果它们是固定输入,则不会提交($preparedStatement=$con->prepare($INSERT-INTO-INTO-einkaufslite(item,owner)值(“milk”)的数据,“me”)){在MySQLi语句中添加一些错误检查或查看错误日志,您可能会找到答案。检查:…execute()
不能包含任何参数,您可能需要在执行准备好的语句之前绑定一些参数