
1,看看链接数据库的地址、用户名跟密码是否正确,并且要用引号引起来;
2,mysql_select_db(message,$link_mysql);message也用引号引起来
3,看一下数据库编码是什么格式,最好加上如mysql_query("set names utf8");,要不然插入中文有可能出现乱码
4,如果id为主键自增长!,那么插入的时候就不用写id值了,也就是$sql = "insert into liuyan(user,title,content,date) values ('张三','测试标题','测试内容',now())";
5,执行sql的时候最好不要执行两次,因为这样为有很多重复数据,如果想判断插入是否成功,那么你可以
$bool=mysql_query($sql);
if($bool){
echo "发布成功";
}else{
echo "发布失败";
}
我滴神嘞,你这么写,你老师造嘛!不出问题才怪,将连接数据的代码重新封装在一个类里,然后调用。连接数据库的五个步骤,1,加载驱动,2,创建连接,3,创建statement语句,4,取出ResultSet 5,关闭资源。将你程序的逻辑和数据库区分开,不然你的爪哇学习道路自寻难路。
你这没有输出错误,看不出来一时半会,你可以试试把mysql里面的sql_mode字段设置为空set
sql_mode='';这样即使插入字段存在问题,mysql也能自动更正,如果仍然存在问题,可能是你的数据库和与程序连接的JDBC或者ODBC那块的问题,可以查询数据库跟插入数据库没有任何联系,我也遇到可读不可写的情况,连接配置问题都是。
这种情况你应该去检测一下你的conf里面的配置文件是否正确,第一就是数据库链接信息,第二就是db_prefix 这个配置,这个配置是数据库前缀名,默认是'tp_'把。你好好看看,如果不会继续追问我
游标类型使用错误
rs是记录集对象,open是其方法,sql是自定义的sql语句,conn是已打开的数据库连接,A、B是记录集的游标和锁类型。
游标类型详解:
RSOPEN SQL,CONN,A,B
参数A为设定游标的类型,其取值为:
0 仅向前游标,只能向前浏览记录,不支持分页、Recordset、BookMark 只读,且当前数据记录只能向下移动
1 键集游标,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中。支持分页、Recordset、BookMark可读写,当前数据记录可自由移动
2 动态游标功能最强,但耗资源也最多。用户对记录说做的修改,增加或删除记录都将反映到记录集中。支持全功能浏览。 可读写,当前数据记录可自由移动,可看到新增记录
3 静态游标,只是数据的一个快照,用户对记录说做的修改,增加或删除记录都不会反映到记录集中。支持向前或向后移动 只读,当前数据记录可自由移动
参数B为记录集的锁定类型,其取值为:
1 锁定类型,默认的,只读,不能作任何修改 默认值,用来打开只读记录 Recordset对象以只读方式启动,无法运行AddNew、Update及Delete等方法
2 当编辑时立即锁定记录,最安全的方式 悲观锁定当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性。当记录集打开的时候将其锁定 ADLOCKPESSIMISTIC(=2) 悲观锁定 当记录集打开的时候将其锁定
3 只有在调用Update方法时才锁定记录集,而在此前的其他 *** 作仍可对当前记录进行更改、插入和删除等 乐观锁定 当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改
ADLOCKOPTIMISTIC(=3) 乐观锁定 当记录集的update事件触发时锁定
4 当编辑时记录不会被锁定,而更改、插入和删除是在批处理方式下完成的 批次乐观锁定 当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、删、改的 *** 作。
Recordset类型:表示打开数据表的方式,有四种选择。数字0表示只读方式,且当前记录只能下移;数字1表示可读写方式,当前记录可自由上下移动,但不能及时看到别的用户建立的新记录,除非重新启动;数字2表示可读写方式,当前记录可自由移动,而且可以及时看到别的用户增加的新记录;数字3表示只读方式,但当前记录可以自由移动。一般选择2为好,除非为了禁止数据被修改。
锁定类型:这个参数指定数据库的锁定功能。因为网络上的数据库都是多用户的,很可能同时有多个用户在 *** 作数据库。为了避免错误,让同一时间只可能有一个用户修改数据,就要用锁定功能。有四种选择:数字1表示只读方式锁定,用户不能更改数据;数字2表示悲观锁定,当一个用户用rs对象开始修改数据时就锁定数据库,直到用户用rsUpdate更新记录后,才解除锁定;数字3表示乐观锁定,只有在数据写入数据库中时候才锁定,不保险,慎用!数字4表示批次乐观锁定,只有在使用rsUpdateBatch成批更新数据时候才锁定数据记录。属于很少使用的。一般地,使用悲观锁定比较安全,但是效率要低些。
常见的 *** 作对象:
rsaddnew :添加一个新记录在数据表末尾。
rsdelete :删除当前记录。
rseof :判断是否已过最后记录。
rsbof :判断是否移过首记录。
rsupdate :数据修改生效。
rs(“字段名”):当前记录指定字段的值。
从数据表中提取数据:用x=rs(“字段名”)的格式,提取数据表中当前记录指定字段的值。
向数据表中填入或修改数据:用rs(“字段名”)=数据值或变量的方式,修改当前记录指定字段的值。
Requery 方法是通过重新,注意是重新执行rs2对象基于的查询来更新rs2对象的数据,意思就是将
rs2Requery 之前的数据重新更新,这样就没有数据可以 rs2Update 了。
将 rs2Requery 一句删除即可。
string sql = "insert into liuyan values ('" + title + "','" + content + "') ";
SQL 语句错误,建议不要省略掉表名和字段名
以上就是关于php中写不进数据库全部的内容,包括:php中写不进数据库、java向数据库写数据为什么写不进去、mysql某个数据表无法写入数据。。。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)