Вставьте данные в MySQL, используя ajax

-2

Я пытаюсь вставить данные в mysql, пробовал все, но ничего не работало

вот мой код:

Javascript:

<script type="text/javascript">
  $(document).ready(function(){
    $("#rating-btn").click( function(){
      var teaching=$("#teaching").val;
      var marking=$("#marks").val;
      var helpfulness=$("#helpfulness").val;
      var difficulty=$("#difficulty").val;
      var grade=$("#grade").val;
      var com=$("#com").val;

  $.ajax({
    type: "POST",
    url:"db/ajax.php",
    data:"teaching=" + teaching +"&marking="+ marking +"&helpfulness="+ helpfulness
    +"&difficulty="+difficulty+"&grade="+grade+"&com="+com,
    dataType: "dataString",
    cache: "true",
    success: function(msg,string,jqXHR){
      $("#results").html(msg+string+jqXHR);
    }
    });

  });

});

ajax.php

<?php 

 error_reporting(0);
 require 'db/connect.php';

    $teaching = $_POST['teaching'];
    $teaching = mysql_real_escape_string($teaching);

    $marking = $_POST['marking'];
    $marking  = mysql_real_escape_string($marking);

    $helpfulness = $_POST['helpfulness'];
    $helpfulness  = mysql_real_escape_string($helpfulness);

    $difficulty = $_POST['difficulty'];
    $difficulty = mysql_real_escape_string($difficulty);

    $grade = $_POST['grade'];
    $grade = mysql_real_escape_string($grade);

    $com= $_POST['com'];

    $sql = "INSERT INTO ratings VALUES ( '', '{$teaching}', '{$marking}' ,'{$helpfulness}', '{$difficulty}' ,'{$grade}' , '2' , '{$com}')";

   mysqli_query($sql);

?>

connect.php

<?php
$db= new mysqli('localhost','root','','instructors');

if($db->connect_errno){
    die("we are having some problems");
}

?>

Я попытался использовать код sql и работал на странице phpmyadmin.

Итак, чего не хватает, что препятствует проникновению данных в базу данных?

UPDATE: когда я пытаюсь повторить все переменные, и их значения обычно появляются, я также пытался это сделать:

$sql = "INSERT INTO 'ratings' VALUES ( '', '3.5', '2.5' ,'4.5', '2.5' ,'1' , '2' , 'hello how are you')";

он не вставляет эти значения в базу данных

но когда я ставлю тот же код sql в phpmyadmin, он добавит строку отлично

  • 0
    Какую ошибку вы получаете? Кроме того, почему бы не использовать mysqli_query() ?
  • 0
    Вы уязвимы для атак с использованием SQL-инъекций ( $comment НЕ удалось избежать), и вы просто предполагаете, что операции с БД никогда не могут завершиться неудачей. Плохое предположение. Попробуйте mysql_query($sql) or die(mysql_error()) и наслаждайтесь сообщениями об ошибках.
Показать ещё 8 комментариев
Теги:

3 ответа

1
Лучший ответ

Кажется, ваш Js-код имеет некоторые недостающие paranthesis. > ou следует заменить "val" на вызов функции "val()"

  var teaching=$("#teaching").val();
  var marking=$("#marks").val();
  var helpfulness=$("#helpfulness").val();
  var difficulty=$("#difficulty").val();
  var grade=$("#grade").val();
  var com=$("#com").val();

Впоследствии вы должны получить некоторые значения в PHP-land, которые можно вставить.

Кроме того, вы смешиваете процедурный и OOP-код.

 mysqli_query($sql);

... по крайней мере, отсутствует соединение в качестве первого параметра. Но так как вы сохранили экземпляр mysqli_connection уже в $ db, попробуйте заменить его:

$db->query($sql);
  • 0
    я заметил это и исправил это, но все еще не вставляю в базу данных
  • 0
    Я обновил свое сообщение для дополнительного исправления ;-)
0

исправлена моя проблема, просто используя объект $ db, который я уже создал в connect.php в ajax.php

вместо написания

 query(&sql)

решение:

$db->query($sql);

спасибо всем за помощь.

0

Что все говорили о mysql и mysqli. Кроме того, вы должны добавить & между vars.

data:"teaching=" + teaching +"&marking="+ marking +"&helpfulness="+ helpfulness
    +"&difficulty="+difficulty+"&grade="+grade+"&comment="+comment,
  • 0
    уже пробовал это ничего не похоже на работу

Ещё вопросы

Сообщество Overcoder
Наверх
Меню