php插入数据的时候出错 php数据库添加失败的原因

PHP往数据库写入数据 , 怎么输入都失败为什么?你发这么多HTML代码有什么用啊 。
写入失败只有两种情况,要么就是你的数据表设计错误,要么就是你的SQL语句出现了错误,
你现在最好把你的SQL语句打印出来看一下有没有语法错误,再一步步排错!
php脚本连接mysql数据库成功了,但插入数据总是出错怎么办检查php插入数据的时候出错你的mysql表设置的字段php插入数据的时候出错,字段类型,是否为空等是否与你插入的数据类型信息相符,如果插入失败 , 数据库应该会报错 , 你仔细查看一下报错信息 。
为什么php中无法插入数据?这是因为php插入数据的时候出错你php插入数据的时候出错的数据库连接方式是mysqliphp插入数据的时候出错,不是mysqlphp插入数据的时候出错,所以php插入数据的时候出错:
mysql_query
要改为
mysqli_query
或者
$conn-query
php显示数据库插入错误额在phpadmin 里插入 以下语句 看看报不报错 。看是不是引号报错
insert into user(username,pwd,email) values(111,222,333)
php插入数据失败你当前使用的用户名没有添加的权限 , 应该给当前用户分配权限,具体过程:
1.用最上位管理者登陆mysql,就是用户名是root的那个
2.点击主页面上的【权限】按钮,会出现 用户一览
3.在用户一览 页面,选择当前用户名【hxm】进行 编辑权限,选择【全选】就可以了
最后 重新登录mysql
php向mysql插入数据出错mysql语句在执行insert,update时,对于非数字的值,必须加引号,比如
update tablename set attrA='valueA'
update tablename set attrA=valueA;
这样就会报错 。对于数字的值,可以不加,加上也不会影响插入效果 , 比如
update tablename set intAttrA = 1;
update tablename set intAttrA = '1';
这两种都是可以的 。
你这里报错的一行代码,假设输入的$_POST['username'] = ‘a’;$_POST['pwd'] = ‘b’;$_POST['content'] = 'c';
【php插入数据的时候出错 php数据库添加失败的原因】在处理后,最后执行的是
INSERT INTO userinfo (username, pwd, content) VALUES (a, b, c);
它的错误就是上面说的非数字类的值 , 没带引号 。
但实际上,正确的语句应该是
INSERT INTO userinfo (username, pwd, content) VALUES (‘a’, ‘b’, ‘c’);
所以你测试的
$query = 'INSERT INTO userinfo (username, pwd, content) VALUES ("username", "pwd", "content")'; 能正确执行 。
最后问题的解决方法是:
$query = "INSERT INTO userinfo (username, pwd, content) VALUES ('".$_POST['username']."', '".$_POST['pwd']."', '".$_POST['content'].")";
另外 为了看起来舒服点,可以这么写:
$query = sprintf("INSERT INTO userinfo (username, pwd, content) VALUES ('%s', '%s', '%s);",$_POST['username'],$_POST['pwd'],$_POST['content']);
最后,你这种写法,有Sql注入的风险 , 从安全角度来讲是不可取的 。所以应该这么写:
$query = sprintf("INSERT INTO userinfo (username, pwd, content) VALUES (unhex('%s'),unhex('%s'), unhex('%s'));",bin2hex($_POST['username']),bin2hex($_POST['pwd']),bin2hex($_POST['content']));
关于php插入数据的时候出错和php数据库添加失败的原因的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读