使用jQuery ajax创建数据库表的麻烦

Trouble with creating database table using jQuery ajax

本文关键字:麻烦 数据库 创建 jQuery ajax 使用      更新时间:2023-09-26

我对jQuery和ajax绝对是新手。目前,我正试图创建一个表在我的本地sql服务器从一个javascript文件,我张贴语句到。php文件执行语句。

. js文件:

function executeStatement(sqlStatement){
    $.ajax({
      type: "post",
      data: sqlStatement,
      cache: false,
      url: "api.php",
      dataType: "text",
      error: function(xhr, status, error) {
        var err = eval("(" + xhr.responseText + ")");
        alert(err.Message);
      },
      success: function ()
      {
        alert ("Success!!");
      }
    });
  }

。php文件:

  require_once('PhpConsole.php');
  PhpConsole::start();
  debug('HERE!!!');
  $sqlStatement = $_POST['sqlStatement'];
  $host = "*****";
  $user = "*****";
  $pass = "*****";
  $databaseName = "db_user_data";
  // Create connection
  $con = mysqli_connect($host, $user, $pass, $databaseName);
  // Check connection
  if (mysqli_connect_errno($con)){
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }
  else{
    $con->query($sqlStatement);
    header('Location: success.php');  
  }

我使用PHP控制台调试.php文件,但在这种情况下,甚至第一个日志'HERE!!'没有打印到控制台,所以我想知道它是否甚至到达了这个。php文件。无论如何,到达executeStatement方法中的事件success并打印'Success',即使数据库中没有更改。顺便说一下,.php文件也在本地服务器上执行。有人知道问题出在哪里吗?

Thanks in advance

PHP代码中的"$pass"变量有一个错别字:

require_once('PhpConsole.php');
PhpConsole::start();
debug('HERE!!!');
$sqlStatement = $_POST['sqlStatement'];
$host = "*****";
$user = "*****";
**$pass = "*****";**
$databaseName = "db_user_data";
// Create connection
$con = mysqli_connect($host, $user, $pass, $databaseName);
// Check connection
if (mysqli_connect_errno($con)){
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
else{
  $con->query($sqlStatement);
  header('Location: success.php');  
}

编辑:这是我修改过的JS代码-这对我来说是完美的,因为我能够将代码从AJAX调用传递到PHP代码并返回。试试这个:

var sqlStatement = "sqlStatement=SQLSTATEMENTHERE";
$.ajax({
  type: "POST",
  data: sqlStatement,
  cache: false,
  url: "api.php",
  success: function ()
  {
    alert ("Success!!");
  }
});

将变量置于函数外部,将ajax调用置于函数内部以替换旧的变量。至于PHP,我将马上检查。