1楼2楼说的都不正确。你用下面方法看看核闭吧
貌似改镇裂没有数据库连接啊,至于“新发现数据库表用TXT看,里面的文字编码是正确的,用SQL的事件探查器看,就是乱码,和这个有关不?”没有关系的。先搞清楚你的数据库字符集是哪个:utf8,gbk,还是gb2312,这里暂定utf8
//修改
//没有看到你旅并的数据库conn链接啊
@$conn = mysql_connect("yourHost","yourUserID","yourPassword");
foreach ($czi as $k=>$v)
{
$sql="SELECT * FROM `zi2` WHERE `zi`='$v'";
//echo $sql;
mysql_query("set names utf8",$conn);
$q=mysql_query($sql,$conn);
$rs=mysql_fetch_array($q);
if ($rs)
echo "有数据行";
//...
mysql_free_result($q);
}
mysql_close($conn);
?>
这是因为在循环中可能旅衫兆清某条sql有错,导致没有查询结果.
=============
(1)怀疑是你的$czi的数据可能存在问题.建议先使用print_r($czi),看看数据有没有问题.
(2)zi2这张表存在拆猜腔吗?
(3)打印出每次执行的SQL,在 $q=mysql_query($sql);
前面加上
echo $sql."
";
(4)取结果集之前判断一下有没有返回查询结果.
if(mysql_num_rows($q) < 1) {
$rs=mysql_fetch_array($q);
....
}
="SELECT * FROM `zi2` WHERE `zi`='$v'";
查询结果为空的。如果zi是明锋zi2表的一慎槐顷个字段,不要在zi上宽陆加引号。