MYSQL插入不起作用

时间:2016-10-12 19:30:06

标签: php html mysql

从技术上讲,它接受所有输入,但没有任何错误消息表明我的代码有问题。插入位于代码的底部,奇怪的是不能正常工作,因为我在数据库中尝试了insert语句,当然用实际值更改了变量,并且它以这种方式工作。

在我的工作台中尝试了这个插入语句并且它有效:

INSERT INTO members (organization,login,password,name,title,profil,created,logout_time,timezone) VALUES ('1','Kristen','123','Kristen Crooks','Volunteer','2','2016-10-11 14:09','0','0')

代码:

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    <center><b> Volunteer Management </b></center>

    <center>
    <a href="index.php">Add User </a>
    <a href="add_skill.php"> Add Skills </a>
    <a href="assign_user.php">Assign User</a>
    </center>
</head>
<body>
    <?php

        $config = parse_ini_file('/config.ini'); 


        $conn = new mysqli($config['servername'], $config['username'], $config['password'], $config['database']);

        if ($conn->connect_error) {
             die("Connection failed: " . $conn->connect_error);
        } 

        $sql = "SELECT skillName FROM skills";
        $result = $conn->query($sql);
        $num=mysqli_num_rows($result);
        $conn->close();
    ?>
    <form method="get">

        Username: <br>
        <input type="text" name="username"> <br>
        Password: <br>
        <input type="text" name="password"> <br>
        Name: <br>
        <input type="text" name="name"> <br>
        Title: <br>
        <input type="text" name="title"> <br> <br>


        Permission:

        <select id="permission" name="permission">
            <option selected disabled>Choose here</option>
            <option value="0">Admin</option>
            <option value="1">Project Manager</option>
            <option value="2">Volunteer</option>
            <option value="6">Accounting Officer</option>
        </select> <br><br>



        Skills: <br>

        <?php

            $i=0;while ($row = mysqli_fetch_assoc($result)) {

            $skillName=$row['skillName']; 

        ?>

        <input type="checkbox" name="skills" value="<?php echo $skillName; ?>" ><?php echo $skillName; ?><br>

        <?php $i++;} ?>
        <br>

        <input type="submit" name="submit">

    </form>

    <?php
            if(isset($_GET['submit']))
            {
                $config = parse_ini_file('/config.ini'); 


                $conn = new mysqli($config['servername'], $config['username'], $config['password'], $config['database']);

                if ($conn->connect_error) {
                    die("Connection failed: " . $conn->connect_error);
                } 

                 $login = $_GET['username'];
                 $password = $_GET['password'];
                 $name = $_GET['name'];
                 $title = $_GET['title'];
                 $profil = $_GET['permission'];
                 $created = date('Y-m-d H:i:s');

                 $sql = "INSERT INTO members (organization,login,password,name,title,profil,created,logout_time,timezone) 
                                        VALUES ('1','$login','$password','$name','$title','$profil','$created','0','0')";
                 $result = $conn->query($sql) or die('Error, insert query failed');

                 $conn->close();
            }
    ?>



</body>

2 个答案:

答案 0 :(得分:0)

好的,我已经解剖了代码,看来$created = date('Y-m-d H:i:s');导致了错误。当我试图不将它包含在insert语句中的数据中时,它起作用了!我想我必须采用另一种方式从系统中获取日期。

此外,我已经检查过出现错误的原因是因为日期格式是VARCHAR而不是日期,另一个问题是它不适合设置的长度。虽然我想问为什么服务器没有检测到存在类似

的错误

答案 1 :(得分:-1)

  1. 检查PHP日志和mysql日志,写下那里有什么。
  2. 在INSERT之前放置一个echo,检查你的脚本是否到达那个地方。
  3. 如果echo不起作用,则问题不在INSERT