就是一个新闻发布系统,在本机测试可以,上传到服务器之后,原告数据库里有的新闻可以修改,但就是不能插入新的,也没有任何错误提示,难道是用户权限的问题?

解决方案 »

  1.   

    通过用户权限的设置,可以做到只允许update,不允许insert,
    但你这种情况,估计不是,是不是insert的时候少了什么 not null 的字段。 在服务中上直接用 mysql命令行下试一下。1. 新建一测试表,看看能不能insert
    2. 直接测试一下在你新闻这张表能否直接insert.
      

  2.   

    在应用中不报错,不代表在命令行直接执行也不报
    把insert 语句 在命令行下执行看看报什么错?
    mysql> insert into 。
      

  3.   

    在本机可以,上传到服务器不可以,也有可能是跟权限有关,
    因为在本机测试,使用本机的用户登录到数据库的,这个账户是本地用户,也许权限是最高的,可以INSERT ,
    但是你上传到服务器,不知道你是通过哪个账户连接的数据库,如果还是通过本地用户的话,就不是权限的问题了,
    如果是通过别的用户的话,就有可能是权限的问题。
    所谓的本地用户,就是数据库服务器安装在的机器,在这个机器上登录数据库是用的本地账户,也就是'user_name'@'localhost',账户;
    但若是你把你的程序发布到程序服务器上的话,而数据库跟这个程序服务器不是同一台电脑的话,
    那么你的程序登录服务器用的账户就不是刚才的本地账户,而是原创账户,也就是'user_name'@'%',
    这两个账户是不同的,后者是所有原创账户使用的,区别于前者。一般两者的权限是不同的,默认后者小于前者,
    在你的数据库服务器上通过语句“select * from mysql.user\G”来看看后者这个账户的权限列表里面是否有INSERT 的权限呢?也就是这一列的值是N还是Y?
      

  4.   

    grant all privileges on *.* to user@'%' 这个可以排除是否权限问题。。