繁体   English   中英

PHP SQL查询在错误的列中插入记录

[英]php SQL query inserting records in wrong column

我有这段代码可以从一个表中选择数据,然后在数组中将其移动到另一个表中。

<?php 
// CHANGE THE CONNECTION INFORMATION TO YOUR DETAILS (OFF YOU CARD)
//$connection = mysql_connect("localhost","root");


$conn = new COM("ADODB.Connection") or die("Cannot start ADO");
$conn->Open("Provider=SQLOLEDB; ..");

$conn2 = new COM("ADODB.Connection") or die("Cannot start ADO");
$conn2->Open("Provider=SQLOLEDB; Data Source=...;
Initial Catalog=...; User ID=...; Password=...");


$rs = $conn->Execute("SELECT ColourID, Width, Height, Price FROM VS_Matrix");    // Recordset

$num_rows = $rs->Fields->Count();

for ($i=0; $i < $num_rows; $i++) {
    $fld[$i] = $rs->Fields($i);
    $fld2[$i] = $rs->Fields($i);
    $fld3[$i] = $rs->Fields($i);
    $fld4[$i] = $rs->Fields($i);
    $x= 469;


}

$rowcount = 0;
while (!$rs->EOF) {
    for ($i=0; $i < $num_rows; $i++) {
        echo $fld[$i]->value . "\t";

$rs2 = $conn2->Execute("INSERT INTO TST (ID, ColourID, Width, Height, Price) VALUES ('".$x."','".$fld[$i]."','".$fld2[$i]."','".$fld3[$i]."','".$fld4[$i]."')"); 

    }




    echo "\n";
    $rowcount++;   
        $x=$x+1;     // increments rowcount
    $rs->MoveNext();
}

$rs->Close();
$conn->Close();

$rs = null;
$conn = null; 

由于某种原因,它的放置记录似乎是随机的,可能导致我犯了一个愚蠢的错误。 任何人都可以发现它吗?

从PHP手册用户评论PHP:COM-手册

    $rows=0;
    while(!$rs->EOF) {
        for($i=0;$i<$rs->Fields->count;$i++) {
            $rsf = $rs->Fields($i);
            if($associative) $rtn[$rows][$rsf->Name] = $rsf->value;
            else $rtn[$rows][$i] = $rsf->value;
        }
        $rows++;
        $rs->MoveNext();
    }

之后,您将获得$rtn ,其中$rtn[$row] -是一个由一行数据库值组成的数组。

根据您的问题,我不确定您为什么要做所有这些额外的工作。 假设ID为AUTO_INCREMENT,您可以:

INSERT INTO TST (ColourID, Width, Height, Price) 
SELECT ColourID, Width, Height, Price FROM VS_Matrix

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM