为什么通过POST得到的数据无法存入数据库

$.ajax({
type: "post",
url: 'http://127.*.*.*/test.php',
data: 'name=john',
dataType: "json",
})

$a=$_POST[name];
$con=mysqli_connect('localhost', 'root', '******');
mysqli_select_db($con,'test);
$sql="INSERT INTO testsjb (name) values ($a)";
mysqli_query($con,$sql);
$uid=mysqli_insert_id($con);
echo $uid;

经测试$a如果是普通字符串就可以插入成功,一旦换成POST就不行了~

 data: 'name=john'
这个不是json
应该是 name:'john'

看下$_POST[name];里面是什么,是否有特殊字符,

$sql="INSERT INTO testsjb (name) values ('" + $a +"')";
这样看看

dataType限制为json了,所以造成

 $_POST[name];

为空了

你试试json字符串格式对不,按道理说,json不应该是下面这样的么?
data: { 'name':'john'},

不行的话,试试
data: '{ 'name':'john'}',

注意别使用中文的单引号和逗号,冒号

print_r($_POST) 先打印所有post 看看

你试试
data: { 'name':'john'},
不行的话,试试
data: '{ 'name':'john'}',
注意别使用中文的单引号和逗号,冒号
然后下面这样,
$a = $_POST['name'];

大兄弟:
$a=$_POST[name];
改为
$a=$_POST["name"];

dataType的原因

符号,格式有问题,还有中文支持

 $.ajax({
      cache:false,
      type:"post",
      url:"test.php",
      datatype:'json',
      data:'name=john',
      success:function(data) {
        alert(data);
      }
    });

php里面使用

 print_r($_POST);

确保$_POST[name]这个有值,可能是没有取到值;
data换成这个
data: { 'name':'john'}

data: 'name=john' 这是字符串啊,哪里是json格式

data: 'name=john' 你编写有误,经过调试后,在试下,哪有直接入库的。都是经过处理后,才会入库的。