<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    </head>
    <body>
        <?php
        require_once '../config/user.class.php';        $conn = new tmsAccess();        if (!$conn->is_loaded()) {
            echo"您尚未登录,请<a href=\"login.php\">点此登录</a>";
            exit;
        } else {
            $bb = $conn->student_num;
            $cc = $conn->student_name;
            $dd = $conn->student_email;
            $ee = $conn->student_profession;
            $ff = $conn->student_grade;
            $gg = $conn->student_class;            $pp = "2343545"; //这里要取得浏览器传递的变量,获得课程编号和课程名称,但是为什么这个变量能插入数字的而不能插入字符的呢?            echo $bb . "<br />";
            echo $cc . "<br />";
            echo $dd . "<br />";
            echo $ee . "<br />";
            echo $ff . "<br />";
            echo $gg;
            echo $course_num;
            //处理提交表单            if ($_POST['submit']) {
                $sql = "insert into tms_stat (id, course_num, stat_value1, stat_value2, stat_value3, stat_value4, student_num, stat_date)  values('','$pp','$_POST[stat_value1]','$_POST[stat_value2]','$_POST[stat_value3]','$_POST[stat_value4]',$bb,now())";
                mysql_query($sql);
                echo"数据插入成功";
            }
        }
        ?>
        <form action="vote.php" method="post">
            <table border="1">
                <tbody>                    <tr>
                        <td>是否有教师风范</td>
                        <td><select name="stat_value1">
                                <option value="5">5</option>
                                <option value="10">10</option>
                            </select></td>
                    </tr>
                    <tr>
                        <td>是否有教师风范</td>
                        <td><select name="stat_value2">
                                <option value="5">5</option>
                                <option value="10">10</option>
                            </select></td>
                    </tr>
                    <tr>
                        <td>上课水平</td>
                        <td><select name="stat_value3">
                                <option value="5">5</option>
                                <option value="10">10</option>
                            </select></td>
                    </tr>
                    <tr>
                        <td>与学生融洽度</td>
                        <td><select name="stat_value4">
                                <option value="5">5</option>
                                <option value="10">10</option>
                            </select></td>
                    </tr>                    <tr>
                        <td><input type="submit" value="提交" name="submit" /></td>
                        <td><input type="reset" value="取消" name="cancel" /></td>
                    </tr>
                </tbody>
            </table>        </form>
    </body>
</html>上面是我的源码,重点是 $sql = "insert into tms_stat (id, course_num, stat_value1, stat_value2, stat_value3, stat_value4, student_num, stat_date)  values('','$pp','$_POST[stat_value1]','$_POST[stat_value2]','$_POST[stat_value3]','$_POST[stat_value4]',$bb,now())";
                mysql_query($sql);
为什么$bb和$pp变量是数字就可以正常插入mysql,而含有字符就不能插入数据呢?给出我的mysql数据表  字段             类型   整理   属性   空   默认   额外   操作
id          int(9)          否  无  AUTO_INCREMENT 
course_num  varchar(50)  utf8_general_ci 否 
stat_value1  int(2)  否 
stat_value2  int(2)  否 
stat_value3  int(2)  否 
stat_value4  int(2)  否 
student_num  int(12)  否 
stat_date  date  否 
求达人解答!

解决方案 »

  1.   

    tms_stat表里的course_num字段是什么类型的啊?
      

  2.   


    在一楼下侧列出啊course_num varchar(50) utf8_general_ci 否 
      

  3.   

    我倒,是varchar型的啊?
    可能是在什么地方有判断限制吧!你的代码中
    $pp = "2343545"; 
    应该是能插入的吧!?
    上面是字符串型的,所以如果没有判断是否是数字型的话,就能插入字符串!你再仔细看遍代码!
      

  4.   

    还有你的插入语句里面
    values()中的$bb用单引号包起来试下,带字符行不!
      

  5.   

    你sql语句中的$bb明显是插到student_num字段的,而这个自段你定义了int(12),怎么能插入字符呢!
      

  6.   

    你在执行前输出下$sql就知道加单引号和不加的区别了!
    你试下 $sql = "insert into tms_stat (id, course_num, stat_value1, stat_value2, stat_value3, stat_value4, student_num, stat_date)  values('','$pp','$_POST[stat_value1]','$_POST[stat_value2]','$_POST[stat_value3]','$_POST[stat_value4]',$bb,now())";
    echo "SQL:".$sql;
    mysql_query($sql);
      

  7.   


    这个$bb获取了学生学号,这个没问题都是数字,问题出现在$pp上
      

  8.   


    $bb没问题啊,学号设置的都是数字   $pp有问题啊,哭死不知道哪里出了问题