PHP使用mysql插入数据

标签 php html mysql

我是 PHP 新手,刚学不久。我做了一些表单,在提交时,它会在 mysql 表中插入新数据。我似乎无法弄清楚问题所在。这是我的代码:

<form method="post">
        <table border='2' cellpadding=4 cellspacing=1 width=50% bgcolor=white align=center >
        <br>
            <tr>
                <td><font face=rockwell font size=5 font color=black>Master No.:</td>
                <td class="td-center"><input type="text" name="master_no" /></td>
            </tr>
            <tr>
                <td><font face=rockwell font size=5 font color=black>Alacarte No.:</td>
                <td class="td-center"><input type="text" name="alacarte_no" /></td>
            </tr>
            <tr>
                <td><font face=rockwell font size=5 font color=black>Dessert No.:</td>
                <td class="td-center"><input type="text" name="dessert_no" /></td>
            </tr>
            <tr>
                <td><font face=rockwell font size=5 font color=black>Pasta No.:</td>
                <td class="td-center"><input type="text" name="pasta_no" /></td>
            </tr>
            <tr>
                <td><font face=rockwell font size=5 font color=black>Rice No.:</td>
                <td class="td-center"><input type="text" name="rice_no" /></td>
            </tr>
            <tr>
                <td><font face=rockwell font size=5 font color=black>Wine No.:</td>
                <td class="td-center"><input type="text" name="wine_no" /></td>
            </tr>
            <tr>
                <td><font face=rockwell font size=5 font color=black>Member ID:</td>
                <td class="td-center"><input type="text" name="member_id" /></td>
            </tr>

            <tr>
                <td>&nbsp;</td>
                <td class="td-center">
                    <input type="submit" name="submit" value="Add"/>
                    <input type="Reset"/>
                    <a href="member-profile.php">
                        <input type="button" name="home" value="home"/>
                    </a><br>
                </td>
            </tr>
        </table>
        <?php   

            if (isset($_POST['submit'])) {
                $conn = mysql_connect('localhost', 'root', '');
                 if (!$conn)
                {
                 die('Could not connect: ' . mysql_error());
                }
                mysql_select_db("thesis_sofitel", $conn);

                $master_no=$_POST['master_no'] ;
                $alacarte_no= $_POST['alacarte_no'] ;   
                $dessert_no= $_POST['dessert_no'] ;
                $pasta_no= $_POST['pasta_no'] ; 
                $rice_no= $_POST['rice_no'] ;
                $wine_no= $_POST['wine_no'] ;   
                $member_id= $_POST['member_id'] ;

                mysql_query("INSERT INTO `master_list`(master_no,alacarte_no,dessert_no,pasta_no,rice_no,wine_no,member_id) 
                            VALUES ('$master_no','$alacarte_no','$dessert_no','$pasta_no','$rice_no','$wine_no','$member_id')"); 

                $message = "I was here!!!";
                echo "<script type='text/javascript'>alert('$message');</script>";

            }           
        ?>
    </form>

最佳答案

修复了代码中的一些错误并将其更改为 mysqli。现在应该可以了:

1) 在您的表单中提供一个 action 属性,在您的例子中为 action = ""

2) 回显 值以了解它们是否真的被提取。不过,这仍然容易受到 SQL 注入(inject)攻击。阅读更多 here了解准备好的陈述为何/如何提供帮助。

<?php   
    if (isset($_POST['add-submit'])) {
     $con=mysqli_connect("localhost","root","your_pass_here","thesis_sofitel");

    if (mysqli_connect_errno())
     {
       echo "Failed to connect to MySQL: " . mysqli_connect_error();
     }

        echo        $master_no=$_POST['master_no'] ;
        echo        $alacarte_no= $_POST['alacarte_no'] ;   
        echo        $dessert_no= $_POST['dessert_no'] ;
        echo        $pasta_no= $_POST['pasta_no'] ; 
        echo        $rice_no= $_POST['rice_no'] ;
        echo        $wine_no= $_POST['wine_no'] ;   
        echo        $member_id= $_POST['member_id'] ;

$success = mysqli_query($con,"INSERT INTO `master_list`(master_no,alacarte_no,dessert_no,pasta_no,rice_no,wine_no,member_id) 
                            VALUES ('$master_no','$alacarte_no','$dessert_no','$pasta_no','$rice_no','$wine_no','$member_id')");

                            if($success){
                $message = "I was here!!!";
                echo "<script type='text/javascript'>alert('$message');</script>";
                            }
                            else
                                echo "Query Failed.";

mysqli_close($con);

            }           
        ?>

HTML:

<form method="post" action = "">
        <table border='2' cellpadding=4 cellspacing=1 width=50% bgcolor=white align=center >
        <br>
            <tr>
                <td><font face=rockwell font size=5 font color=black>Master No.:</td>
                <td class="td-center"><input type="text" name="master_no" /></td>
            </tr>
            <tr>
                <td><font face=rockwell font size=5 font color=black>Alacarte No.:</td>
                <td class="td-center"><input type="text" name="alacarte_no" /></td>
            </tr>
            <tr>
                <td><font face=rockwell font size=5 font color=black>Dessert No.:</td>
                <td class="td-center"><input type="text" name="dessert_no" /></td>
            </tr>
            <tr>
                <td><font face=rockwell font size=5 font color=black>Pasta No.:</td>
                <td class="td-center"><input type="text" name="pasta_no" /></td>
            </tr>
            <tr>
                <td><font face=rockwell font size=5 font color=black>Rice No.:</td>
                <td class="td-center"><input type="text" name="rice_no" /></td>
            </tr>
            <tr>
                <td><font face=rockwell font size=5 font color=black>Wine No.:</td>
                <td class="td-center"><input type="text" name="wine_no" /></td>
            </tr>
            <tr>
                <td><font face=rockwell font size=5 font color=black>Member ID:</td>
                <td class="td-center"><input type="text" name="member_id" /></td>
            </tr>

            <tr>
                <td>&nbsp;</td>
                <td class="td-center">
                    <input type="submit" name="add-submit" value="Add"/>
                    <input type="Reset"/>
                    <a href="member-profile.php">
                        <input type="button" name="home" value="home"/>
                    </a><br>
                </td>
            </tr>
        </table>

    </form>

编辑:

上面的代码有效,为了澄清它,我自己测试了它。以下是所附的图片。

The main page

After submitting the form

The results in the database

第二次编辑:

向 OP 表明,如果他将列更改为 INT 类型,它仍然有效:

enter image description here

关于PHP使用mysql插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32806463/

相关文章:

php - 在英语(和非英语字母)上用 preg_split 拆分字符串

javascript - HTML 从 cookie 加载 Canvas 数据

mysql - 从多个日期范围(事件)中选择已用天数

MySQL 不正确的时间戳值

php - 从我的 $_POST 获取同一行中的另一个值

php - 在不使用枚举的情况下,从 MySQL 的一组预选数据中输入数据的最佳方法是什么?

javascript - 为什么 Firefox 不遵守标准的 javascript 支持元素测试

html - 如何给表格中的每个单元格加边框?

mysql - HQL:计算集合中的空值

php - 单击时 ajax 填充的列表项不填充输入