使用ajax插入数据库,500(内部服务器错误)

时间:2013-12-23 21:51:02

标签: javascript php jquery mysql ajax

在我的html中,我有一个简单的ajax,它在一个按下按钮时被调用的函数内。我希望调用的php脚本插入发送到数据库的javascript变量。

var myval = 'testuser'; // generated by PHP

            $.ajax({
              type: 'POST',
              url: 'testfile.php',
              data: {'variable': myval},
            });

在我的testfile.php中,我尝试了很多东西插入数据库,但没有运气。我知道ajax正在工作,因为只做波纹管工作正常而没有错误。

<?php

$myval = $_POST['variable'];
echo $myval;

?>

我首先尝试使用全局变量进行此操作。然后甚至尝试手动输入值,我仍然得到500错误,即使我在另一个脚本中有完全相同的代码(不是由ajax调用),它工作正常。

$db = new PDO('mysql:host='. DB_HOST .';dbname='. test_user, DB_USER, DB_PASS);

所以我尝试以不同的方式打开它。

$con = mysqli_connect('localhost','username,'pass','newdb');
if (!$con)
  {
  die('Could not connect: ' . mysqli_error($con));
  }

并且工作正常。但是,输入全局变量会导致它不起作用。

然后我尝试插入表格。

  INSERT INTO send (user_id)
  VALUES ($myval);

我再次收到500错误。

我尝试直接访问php文件(testsite.com/testfile.php)并获取一个空白页面。查看源代码没有给我任何信息。

我为什么错误地继续犯这些错误?

1 个答案:

答案 0 :(得分:1)

PHP:

   <?php

    //Enter your database connection details here.
    $host = 'localhost'; //HOST NAME.
    $db_name = 'dbname'; //Database Name
    $db_username = 'root'; //Database Username
    $db_password = ''; //Database Password

    try
    {
        $myval = $_POST['variable'];
        $pdo = new PDO('mysql:host='. $host .';dbname='.$db_name, $db_username, $db_password);
        $query = $pdo->prepare('INSERT INTO send (user_id) VALUES (?)');
        $query->bindValue(1, $myval);
        $query->execute();
        echo $myval;
    }
    catch (PDOException $e)
    {
        exit('Error Connecting To DataBase');
    }
    ?>

使用Javascript:

var myval = 'testuser'; // generated by PHP

            $.ajax({
              type: 'POST',
              url: 'testfile.php',
              data: {variable: myval},
            });

不要在变量名称周围添加引号。我提供了一个应该按照你想要的方式运行的php脚本,如果你还需要帮助,请回复一下。