简体   繁体   English

获取数组并将其插入到其他数据库中。 插入字符串中的增量变量?

[英]Fetch array and Insert Into different database. Increment variable in Insert string?

I have tried several different methods of implementation for this and can't seem to get the last little bit correct. 为此,我尝试了几种不同的实现方法,但似乎最后一点都没有正确。 The most efficient is obviously the best scenario but at this point it's second to getting it working. 最有效的显然是最好的方案,但是在这一点上它是使它起作用的第二步。

I'm attempting to pull data from the Syspro connection and inserting it into the MySQL connection. 我正在尝试从Syspro连接中提取数据并将其插入MySQL连接中。 I don't need to print anything with this code, just simply insert into the MySQL database. 我不需要用此代码打印任何内容,只需将其插入MySQL数据库即可。

//MySQL Connection
$mysqlcon=mysqli_connect("localhost","root","","production");
// Check connection
if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

//Syspro connection
$conn=odbc_connect('syspro','','');
if (!$conn)
  {exit("Connection Failed: " . odbc_error());}

//Warehouse valuation for S6/SX/SN/SW
$sql_warehouses=
    "SELECT SysproCompanyJ.dbo.InvWarehouse.Warehouse, SUM(UnitCost * QtyOnHand) AS 'Value'

    FROM SysproCompanyJ.dbo.InvWarehouse         

    WHERE   SysproCompanyJ.dbo.InvWarehouse.QtyOnHand > '0' 
        AND SysproCompanyJ.dbo.InvWarehouse.Warehouse NOT LIKE 'A_'
        AND SysproCompanyJ.dbo.InvWarehouse.Warehouse = 'S6' 
        OR Warehouse = 'SX'
        OR Warehouse = 'SN' 
        OR Warehouse = 'SW'

    GROUP BY Warehouse";

$test = array();
$i=0;   
$rs=odbc_exec($conn,$sql_warehouses);
if (!$rs)
  {exit("Error in SQL");}

    while ($row = odbc_fetch_array($rs))    {
        //echo $row['Warehouse'] . ':' .$row['Value']; 
        array_push($test,$row['Warehouse'],$row['Value']);
        //echo mysqli_query($mysqlcon,"INSERT INTO inv_valuation (warehouse, value)
        //VALUES ({$row['Warehouse']} ,{$row['Value']})");
        }

for($i = 0, $size = count($test); $i < $size; ++$i) {
    //echo "WH=" . $test[$i] . ", $=" . $test[++$i];
    mysqli_query($mysqlcon,"INSERT INTO inv_valuation (warehouse, value)
    VALUES ($test[$i] ,$test[++$i])");
    }

    //print_r($test);
    //var_dump($test);
    //echo count($test);

Well, I would do this way: 好吧,我会这样:

while ($row = odbc_fetch_array($rs))    {
    mysqli_query($mysqlcon,"INSERT INTO inv_valuation (warehouse, value)
        VALUES ('" . $row['Warehouse'] . "', '" . $row['Value'] . "')");
}

No need to loop again (as you previously tried :) ) 无需再次循环(如您先前尝试过的:))

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

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