当前位置:编程学习 > php >>

php程序出错

$conn = @mysql_connect("127.0.0.1","root","123123") or die ("链接错误"); mysql_select_db("jrsl",$conn); $sql = "select * from T_admin"; $query=mysql_query($sql,$conn); $row=mysql_fetch_array($query); echo $row[uid]; 高手们,为什么我执行上程序老是在 echo $row[ui] 这里报错呢? 把mysql_fetch_array 换成 mysql_fetch_row 后执行:echo $row[1] 就不会报错,这是为什么呢?
补充:实在找不出什么错误,难道是我的本地服务器有问题,我的是IIS7.5配置的PHP环境。
追问:
但是 把mysql_fetch_array 换成 mysql_fetch_row 后执行:echo $row[1] 就不会报错的呀
mysql_fetch_array得到的结果
 Array ( [0] => 1 [c_id] => 1 [1] => 西安 [c_name] => 西安 [2] => 0 [cp_id] => 0 )             

       

mysql_fetch_row得到的结果
Array ( [0] => 1 [1] => 西安 [2] => 0 )             


他们是有区别的,要不就是你的sql语句写错了,你在你sql语句后面加上个where 1试试
加wher 1 不管用
echo mysql_fetch_Array($query);  和 echo mysql_fetch_row($query); 都返回 Array ,这是怎么回事呢?
UID 是字符类型
因为这两个返回的都是数组啊……我上面的不是告诉你了?不能用echo输出的,数组要用print_r()
嗯,print_r (mysql_fetch_Array($query)); 和 print_r (mysql_fetch_row($query)); 返回的和你上面说的是一样的。
所以你echo $row['uid']的时候要用mysql_fetch_Array($query)
echo $row[1]的时候用mysql_fetch_row($query)
现在问题就是这两种用 echo $row[1] 没有问题,用
mysql_fetch_Array($query) 时 使用 echo $row['uid'] 出错。
把错误打印出来看看吧……
还是不行,在UID上加了 ' '  还是会出错。
执行 echo $row 页面得到 Array
执行 echo $row[1] 正常,可得到数据库中的值,可换成字段名 echo $row[uid] 就不行了。
肯定是键值有问题。var_dump($row);看一下数据是否正常
一样的,打印时只能用 echo "$rs[0]<br>"; 不能用 echo "$rs['字段名']<br>";
当然,关联数组是这样显示array()array()array()……,
这样写: echo "$row[id]<br>";
或者这样写 echo $row['id']."<br>";
答案:第一种可能是你的sql语句写错了
第二种就是你echo $row[ui]里面的ui如果是字段的值应该用单引号引起来
其他:echo $row['ui'] 把错误打印出来 mysql_fetch_array 函数,返回值显示关联数组  ,因为$sql的语句取某列任意值如select id from test,也可以取出整个全列如,select * from test。所以这个函数只负责返回相关数组,而且又不是几维数组,它没有键值表现它的结果。
综上,它与while合作,循环出各个行。取出各个行符合的结果。



建议这么写:
 while($rs=mysql_fetch_array($row))      //循环数据集     
      {
            echo "$rs[0]<br>";
      }
      mysql_free_result($row);      //释放$row
      mysql_close($conn);      //关闭连接

上一个:怎么样把自己的程序发布到网上 是网站 php有用zend框架
下一个:关于php的程序问题

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,