【问题标题】:PHP code to insert data into mysql database is not working将数据插入mysql数据库的PHP代码不起作用
【发布时间】:2016-11-22 07:46:47
【问题描述】:

我正在尝试插入数据而不使用 ajax 和 php 刷新页面,但数据没有插入到数据库中。

这是我的代码

<?php
require 'validation_class.php';
$obj_menufacture = new Validation_Class();

if (isset($_POST['btn'])) {
    $menufacture = $obj_menufacture->menufacture_add($_POST);
}
?>
<!DOCTYPE html>
<html>
    <head>
        <script src='js/jquery-3.0.0.js'></script>
    </head>
    <body>
        <div id='form_id'>
            <form action='' method='post'>
                <input type='text' class='m_name' name='m_name' id='m_name' onchange="names('m_name')" onkeyup="names('m_name')"/>
                <span style='color:red;' id='m_name_error'></span>
                <input type="submit" name='btn' value="submit" id='save'/>
            </form>
        </div>
        <div id='cool'></div>
        <style>
            .border_input{
                border-color:red;
            }
            .border_input1{
                border-color:green;
            }
        </style>
        <script>
            $(document).ready(function () {
                $('#save').on('click', function (e) {
                    e.preventDefault();

                    var m_name = $.trim($('#m_name').val());
                    var dataString = 'name='+ m_name;
                    if (m_name === '') {
                        if (m_name == '') {
                            $('#m_name_error').html('Please enter your name');
                            $('#m_name').addClass('border_input');

                        }
                    } else {
                        $.ajax({
                            url: 'validation.php',
                            method: 'post',
                            data:dataString,
                            success: function () {
                                $("#form_id").slideUp("slow");

                            }
                        });
                    }

                });

            });

            function names(id) {
                var val = $.trim($('#' + id).val());
                if (val === '') {
                    $('#' + id + '_error').html('');
                    $('#' + id).addClass('border_input');
                } else {
                    $('#' + id + '_error').html('');
                    $('#' + id).addClass('border_input1');
                }
            }

        </script>
    </body>
</html>

这是我的插入代码

<?php

class Validation_Class{

    public $link;

    public function __construct() {
        $HOST = "localhost";
        $USER = "root";
        $PASS = "";
        $DATABASE = "store";
        $this->link = mysqli_connect($HOST, $USER, $PASS, $DATABASE);
        if (!$this->link) {
            die('database query problem' . mysqli_error($this->link));
        }
    }

    public function menufacture_add($data) {
        $sql = "INSERT INTO menufacture(m_name)VALUES('$data[m_name]')";
        if (mysqli_query($this->link, $sql)) {
            $menufacture = "Menufacture insert successfully";
            return $menufacture;
        } else {
            die('menufacruere query problem' . mysqli_error($this->link));
        }
    }


}

请帮我解决这个问题

【问题讨论】:

  • 阅读什么是ajax。请做一些使用谷歌搜索,您将获得有关您计划使用的技术的主要信息。我不认为这应该是一个写我代码的论坛。 w3schools.com/xml/ajax_intro.asp
  • 您有任何错误吗?在 PHP error_reporting(E_ALL); ini_set('display_errors', 1); 中启用错误报告并检查您的控制台是否有 JS 错误。
  • 没有没有错误
  • 您检查过错误日志吗?你有没有做过var_dump($data) 看看它实际包含什么?您采取了哪些步骤来自行调试?
  • 顺便说一句...您对SQL Injections 持开放态度,应该真正使用Prepared Statements 而不是连接您的查询。

标签: php mysql ajax


【解决方案1】:
  <form  name="signup" id="reg" action="" method="post"enctype="multipart/form-data">
    <input type='text' class='m_name' name='m_name' id='m_name' onchange="names('m_name')" onkeyup="names('m_name')"/>
    <span style='color:red;' id='m_name_error'></span>
    <input type="submit" name='btn' value="submit" id='save'/>
</form>
            <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
            <script>
                $("#save").submit(function () {
                    var form_data = $('#reg').serialize();
                    $.ajax({
                        type: "POST",
                        url: 'setting.php',
                        data: $('#reg').serialize(),
                        success: function (data) {
                            alert('Data save Successfully');
                        }, error: function () {
                            alert('Some Internal Error.');
                        }
                    });
                });`
            </script>

setting.php

            <?php

            include("db_connection.php"); // include connection file
            if(isset($_POST)) {
            $fname = $_POST['m_name'];
            $insert = "INSERT INTO `table_name`(`column_name`)VALUES('".$fname."')";
            $insertion = mysqli_query($conn, $insert); 
            }

            ?>

【讨论】:

  • 我想用点击功能做到这一点
  • 请一些人给我一个完整的代码,使用 OOP MYSQLI PHP 插入数据而不刷新页面
【解决方案2】:
              $("#save").on("click", function () {
              var form_data = $('#reg').serialize();
            $.ajax({
                type:"POST",

                 url:'setting.php',
                data: $('#reg').serialize(),

                success: function(data){

                  alert("Data save Successfully");  

                },error: function () {
                alert('Some Internal Error.');
            }
          });

            });

【讨论】:

  • 试试这个。仅替换替换脚本
  • 我使用了你的代码,但是数据没有插入到数据库中
  • 请发布您的代码。并再次查看 id name all place are same
  • 输入表格 id="reg" 再试一次
  • 请一些人给我一个完整的代码,使用 OOP MYSQLI PHP 插入数据而不刷新页面
猜你喜欢
  • 1970-01-01
  • 2011-09-12
  • 1970-01-01
  • 1970-01-01
  • 2016-07-02
  • 1970-01-01
  • 1970-01-01
  • 2011-04-16
  • 1970-01-01
相关资源
最近更新 更多