我想使用php服务和json将数据插入mysql数据库,但是当我单击未执行任何操作时,它没有显示任何错误,并且没有将数据添加到数据库帮助中,请
这是保存功能

function save(){
var eml = document.getElementById("tbemail").value;
var mp = document.getElementById("tbmdp").value;
var data = {email: eml, mdp: mp}

$.ajax({
url:"http://localhost:800/test/insert.php",
type: 'POST',
data: data,
dataType: 'json',
success: function()
    {alert("success");}
error: function()
    {alert("fail");}
});
}


这是我的php文件insert.php

<?php
$json = $_POST['data'];
$new=json_decode($json, true);

$conn= mysqli_connect("localhost","root","") or die ("could not connect to    mysql");

mysqli_select_db($conn,"bd") or die ("no database");



$sql = "INSERT INTO user (email,mdp) VALUES ($new['email'],$new['mdp'])";

if (mysqli_query($conn, $sql)) {
 echo "created ";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

?>

最佳答案

$ _POST数组中没有“数据”键,而“电子邮件”和“ mdp”则可以直接访问:

$email = mysqli_real_escape_string($_POST['email']);
$mdp = mysqli_real_escape_string($_POST['mdp']);


没有以这种方式传递的json,类似地,当您获得字符串时,您也不需要解析它。打开错误报告,然后您将看到$ _POST ['data']未定义。

顺便说一句,使用mysqli_real_escape_string清理输入以防止注入。

10-06 04:32
查看更多