PHP环境下无法添加数据到mysql数据库

PHP环境下无法添加数据到mysql数据库,第1张

新版本的MySQL对字段的严格检查,不允许有空的字段插入(就是说表中本来有三个字段,但是你在用insert插入时,语句里面只给两个字段插入数据,对另外一个字段忽略或者

直接为空都不行)。

修改my.ini,将

sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_...

改为

sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

重新启动MySQL。谢谢采纳

请注意这样写

INSERT INTO `news` (`id`, `title`, `dates`, `contents`) VALUES (NULL, '1231', now(), '15236')

表名 news 不是用 '(单引号)  是用 `

另外.

 $sql="insert into `news` ('id','title','dates','contents') values(null,'$title',now(),'$con')"

if (! $sql) echo "执行SQl $sql 错误:".mysql_error() 

   mysql_query($sql)

这里写的不对, 这也正是你不报错的原因.

$sql你以经赋值了,不可能不存在.  所以永远你也看不见 "执行SQl $sql 错误" 这句报错.

应该改成

 $sql="insert into `news` ('id','title','dates','contents') values(null,'$title',now(),'$con')"

  if (mysql_query($sql,$con))

  {

    echo "成功"

  }

else

  {

  echo "执行SQl $sql 错误:".mysql_error() 

 }

用户名密码不对。

如果你是在本地测试,有数据库管理权限,可以查看下有没有 bookhbw这个用户

select * from mysql.user

如果没有可以新建用户,或者在代码里直接使用root账户及密码连接(测试环境无所谓,如果是正式环境,一定要单独建一个用户,分配对应数据库的权限 )

-- 创建用户

create user bookhbw@'localhost' identified by '密码'

-- 授权用户指定的数据库权限

GRANT ALL PRIVILEGES ON 数据库名.* TO 'bookhbw'@'localhost'

-- 刷新权限

FLUSH PRIVILEGES

如果你的数据库中已经有这个账户,看下这个账户设置的Host 是localhost还是ip 还是 %

如果是ip 或者 % 则连接的服务器地址只能写ip 不能写localhost (可以新建一个同名用户绑定localhost)

以上情况,你根据自己的软件 配置,自行设置一下


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/72773.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-02
下一篇2023-03-02

发表评论

登录后才能评论

评论列表(0条)

    保存