无法通过AJAX / PHP将数据发送到MySQL

时间:2014-04-18 18:19:19

标签: php jquery ajax database

我在通过PHP和Jquery ajax调用将数据发送到MySQL时遇到困难,我是新手,如果它显而易见,那么道歉 - 任何帮助都会受到赞赏。

连接数据库php

<?php
 DEFINE ('DB_USER', 'user account');
 DEFINE ('DB_PSWD', 'password');
 DEFINE ('DB_HOST', 'localhost');
 DEFINE ('DB_NAME', 'dbname');
 $dbcon = mysqli_connect(DB_HOST, DB_USER, DB_PSWD, DB_NAME);     
?>

call.php:

<?php   
include(connect_db.php);
$name = $_POST['name'];
$age = $_POST['age'];

mysql_query("INSERT INTO user ('name', 'age') VALUES ('$name','$age')");
  ?>

ajax电话:

通过功能

添加姓名和年龄
function send (name, age) {
 $.ajax({
type: "POST",
url : "scripts/call.php",           
data : "name=" + name + "&age=" + age,
success: function(data) {
    console.log('success');
},
error: function () {
        console.log('failed');
}
  });
 }

我确实获得了一个成功的console.lo但数据库中没有显示任何数据。

谢谢, 斯蒂芬

3 个答案:

答案 0 :(得分:1)

您正在混合mysqli_*mysql_*不能正常工作的电话,您必须只使用一个电话。另外,我建议使用带参数化查询的预准备语句。

How can I prevent SQL injection in PHP?

答案 1 :(得分:0)

我从来没有能够让mysqli_connect工作。我总是用这个

$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD);
if (!$con) {
    die('Could not connect: ' . mysql_error());
}

然后我使用mysql_select_db来选择数据库,如下所示:

mysql_select_db($database) or die(mysql_error());

然后这会运行我的查询:

$sql = "INSERT INTO user ('name', 'age') VALUES ('$name','$age')";

$query = mysql_query($sql,$con);

if(!$query)
{
  die('Could not enter data: ' . mysql_error());
}

mysql_close($con);

对不起。我不太擅长解释为什么或如何运作,但它对我有用。如果它没有运行,请在浏览器中输入网址,查看是否为您提供更具体的信息。

答案 2 :(得分:-1)

首先需要传递有效数据

{"name": name, "age" : age}

然后在call.php中

$results = json_decode(file_get_contents('php://input'));
$name = $results->name;
$age = $results->age;