2015-05-10 2 views
-2

Я использую PHP jQuery и Mysql для создания обновлений в панели администратора, которые появятся на странице обновлений пользователей. Все мои другие формы работают нормально, но только этот раздел обновлений работает неправильно. Проблема в том, что значения не вставлены в базу данных. Я добавил мой JQuery и PHP код ниже:PHP: sql insert not working

Вот мой add_update.php

<?php 
if(isset($_POST["update"])) 
{ 
    include("config.php"); 
    $update=$_POST["update"]; 
    $type=$_POST["type"]; 
    $date=date("d/m/Y"); 
    $sql = "INSERT INTO updates (update, type, date) VALUES ('$update', '$type', '$date')"; 

    if (mysqli_query($conn, $sql)) { 
     echo "success"; 
    } else { 
     echo "error"; 
    } 
} 
else 
{ 
    echo "404 - Page Not Found"; 
} 

Вот мой JQuery:

$("#update_submit").click(function(){ 
     var update=$("#update").val(); 
     var type=$("#update_type").val(); 
     if (update.length<3) 
     { 
      alert("Update Invalid"); 
      $("#update").focus(); 
     } 
     else 
     { 
      var postData="update="+update+"&type="+type; 
      $.ajax({ 
       url: "add_update.php", 
       data: postData, 
       type: "POST", 
       success: function(data){ 
        if(data=="success"){ 
         alert("Successfully added"); 
         $.ajax({url: "updates_table.php", success: function(data){$(".update_table").html(data);}}); //This is just loading all the values from Database 
        } 
        else 
        { 
         alert(data); 
        } 
       }, 
       error: function(jqXHR, textStatus, errorThrown) 
       { 
        alert("Something Went Wrong! Please Try Again Later!");  
       } 
      }); 
     } 
    }); 

Я пытался увидеть, если мои значения передаются правильно и если sql был прав. Кажется, они мне подходят. Здесь выполняется код sql.

INSERT INTO updates (update, type, date) VALUES ('Some text', 'Info', '5/10/2015') 

Посмотрите на моей тузда таблице тоже:

CREATE TABLE `updates` (
`id` int(11) not null auto_increment, 
`update` text, 
`type` varchar(30), 
`date` varchar(20), 
PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; 
+0

Возможно, нужно добавить обратную линию (') вокруг' date' в вашу вставку. выполните sql-код из sqladmin и опубликуйте сообщение об ошибке также – amdixon

+0

@amdixon: обратные шаги не работают – Manikiran

+0

и какое сообщение предоставляет sqladmin при выполнении точного запроса – amdixon

ответ

1

Изменения применяются

  • For reserved words which you want to use for your fieldnames or tablenames, you need to use backticks around them like :

обновленного запрос

INSERT INTO `updates` (`update`, type, `date`) 
VALUES ('Some text', 'Info', '5/10/2015') 
; 

Примечания: технически кавычка не требуется вокруг date имя_поля или updates имя_таблицы. Они требуются около update

1

использовать

mysqli_connect_error() 

Функционирует

mysqli_error() 

и

получить ошибку, которая произошла во время вашего подключения to mysql/выполнение вставки stateme нт

и попытаться поставить имя столбца

update 

как это

`update` 
+0

Я получаю эту ошибку: Описание ошибки: Erreur de syntaxe pr s de 'update, type, date) VALUES (' Matrix updated ', 'Info', '10/05/2015 ')' la ligne 1 – Manikiran

+0

Спасибо, что это правильно работает – Manikiran

1
$("#update_submit").click(function(e) { 
    e.preventDefault(); 
    // ^^^^^^^^^^^^^^^^ 

Это остановит форму от представления и обновления страницы

If this method is called, the default action of the event will not be triggered.

Docs: http://api.jquery.com/event.preventDefault/

+0

Как это должно помочь мне от моей проблемы? – Manikiran

+0

@ Manikiran Я думаю, что форма отправлена ​​и обновлена ​​до завершения 'ajax'. – Tushar

+0

Не работает! :( – Manikiran