本来就不行。你用string作为下标的话也就要用string下标来访问他。

解决方案 »

  1.   

    楼上说的很对.
    PHP的是混合下标制,你给他的下标是string,你就只能用string访问;你给他的下标是number,就只能用number来访问.
      

  2.   

    那么为什么这样可以?
    $query = "SELECT * FROM table......";
    $result = mysql_query($query);
    $row = mysql_fetch_array($result);
    $row["name"], $row[0],这里两种都可以.难道$row不是数组???
      

  3.   

    .........
    那个是因为fetch_array返回的hash map本来就把0对应了第一个字段
    1对应第二个字段,依此类推
      

  4.   

    y10k也来了呀~楼主 你先看看以下的资料吧:
    =============================
    mysql_fetch_array
    传回阵列资料。语法: array mysql_fetch_array(int result, int [result_typ]);传回值: 阵列函式种类: 资料库功能
     
    内容说明 本函式用来将查询结果 result 拆到阵列变数中。若 result 没有资料,则传回 false 值。而本函式可以说是 mysql_fetch_row() 的加强函式,除可以将传回列及数字索引放入阵列之外,还可以将文字索引放入阵列中。若是好几个传回栏位都是相同的文字名称,则最后一个置入的栏位有效,解决方法是使用数字索引或者为这些同名的栏位 (column) 取别名 (alias)。值得注意的是使用本函式的处理速度其实不会比 mysql_fetch_row() 函式慢,要用哪个函式还是看使用的需求决定。参数 result_typ 是一个常数值,有以下几种常数 MYSQL_ASSOC、MYSQL_NUM 与 MYSQL_BOTH。使用范例 <?php
    mysql_connect($host,$user,$password);
    $result = mysql_db_query("database","select * from table");
    while($row = mysql_fetch_array($result)) {
      echo $row["user_id"];
      echo $row["fullname"];
    }
    mysql_free_result($result);
    ?>
    ===================================================
    其实,在传回的数组中,同一份数据出现了两次.也就是说,传回的数组row[]其实是:
    0 => "abc"
    "name" => "abc"不信你自己把$row[0]清空,再读$row["name"].会发现数值还在的.
      

  5.   

    不过,LeeMaRS(小菜虎_水壶的仇人),传回来的两份是什么形式的?会不会在"name"到0等等建立对应关系?不然是不是太浪费了?
    自己要作成这样的效果怎么作?
    不会 0=>"abc或者更长的字串" 
         "name"=>"abc或者更长的字串"
    吧??