我在php循环中有个update更新数据字段的sql
语句为 update Table1 set one="中国",two="1000" where id="34"
一个循环下来,有时会有一个条记录只更新了two这个字段,one这个字段没有更新,有知道什么问题的牛人,指点下这是为什么?
语句为 update Table1 set one="中国",two="1000" where id="34"
一个循环下来,有时会有一个条记录只更新了two这个字段,one这个字段没有更新,有知道什么问题的牛人,指点下这是为什么?
table1表
id one two
34 上海 021
35 北京 010
update table1 set one='西安',two='029' where id=34
在php 中执行后数据为
table1
id one two
34 上海 029
35 北京 010
就是上海没有改为西安,021改为029
<?php
$conn = mysql_connect('localhost','root','admin');
$dbname = mysql_select_db('hello',$conn) or die("cannot connect mysql");
$sql = "update product_sort_zh set name='a', pid=1 where id=1";
$query = mysql_query($sql,$conn);
mysql_close($conn);
?>
再举个例子:
table表中有10000条记录
我查询该表,其中有3000条记录是符合条件(条件不唯一,不能用一条update语句执行)
我要把表中两个字段修改,结果循环完了就发现,有几个记录只修改一个字段,另一个字段的值全部修改了
问题是一条sql语句更新下来,为什么其中一个字段没有更新,不是全部,是个别
id name num
34 上海 100
35 北京 200
上面两条记录都符合条件我要把它们修改
update table set name='西安',num=0 where id=".tid."
tid在循环中赋值34,35
更新完了数据时
id name num
34 西安 0
35 北京 0
试过把汉字改为字母,数字,都会出现这样的问题
写了log就可以看到那句到底是什么,如果真的你的sql没错,而没有全部更新的话, 你就可以向mysql报告bug了.....
写不进行,有可能你字段的类型设置有问题,例如字符型的,结果你设置成了int型了,碰到字符自然写不进去了。
再者就是考虑一下编码问题。不用急,慢慢来,有调试的办法,就一定能搞定。