一个SQL连接查询如下
$sql="SELECT dbo.LD3_Consign.BillNo as abillno,dbo.LD3_Consign.InBillno,dbo.LD3_Consign.ConsignDate,dbo.LD3_Cust.shortName FROM dbo.LD3_Consign Inner Join dbo.LD3_Cust on dbo.LD3_Consign.CustNo=dbo.LD3_Cust.BillNo  WHERE DocNo='$seach1'";
$stmt = $c->prepare($sql );
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_LAST);
   do {
       $data = $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\t". $row[3]."\t". $row[4] . "\n";
       print $data;
      } while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_PRIOR));
$stmt = null;
现在是可以用$row[0]取对应值,但我是想$row['列名']这样取值,因为这样出问题也好找,应该如何

解决方案 »

  1. 形如 $row[0] 的改为形如 $row['列名']$stmt-> fetch(PDO::FETCH_NUM,   PDO::FETCH_ORI_PRIOR)); 
    改为
    $stmt-> fetch(PDO::FETCH_ASSOC,   PDO::FETCH_ORI_PRIOR)); 
      

  2. 谢谢楼上,可是改了以后没有输出了
    $sql="SELECT dbo.LD3_Consign.BillNo as abillno,dbo.LD3_Consign.InBillno,dbo.LD3_Consign.ConsignDate,dbo.LD3_Cust.shortName FROM dbo.LD3_Consign Inner Join dbo.LD3_Cust
        on dbo.LD3_Consign.CustNo=dbo.LD3_Cust.BillNo  WHERE DocNo='$seach1'";
    //$rs = $c->query($sql);
    //array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL)
        $stmt = $c->prepare($sql );
        $stmt->execute();
    $row = $stmt-> fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_LAST);
    //    $row = $stmt->fetch(PDO::FETCH_ASSOC,PDO::FETCH_ORI_PRIOR);
        do {
            $data = $row['abillno'] . "\t" . $row['InBillno'] . "\t" . $row[2] . "\t". $row[3]."\t". $row[4] . "\n";
            print $row['abillno'];
            print $row[0];
          print $data;
        } while ($row = $stmt-> fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_PRIOR));
        $stmt = null;
      

  3. 终于搞定,谢二楼
    $sql="SELECT dbo.LD3_Consign.BillNo as abillno,dbo.LD3_Consign.InBillno,dbo.LD3_Consign.ConsignDate,dbo.LD3_Cust.shortName FROM dbo.LD3_Consign Inner Join dbo.LD3_Cust
        on dbo.LD3_Consign.CustNo=dbo.LD3_Cust.BillNo  WHERE DocNo='$seach1'";
        $stmt = $c->prepare($sql );
        $stmt->execute();
    $row = $stmt-> fetch(PDO::FETCH_ASSOC);
        
            print $row['abillno'];
            print $row[0];
      

类似问题 »