从一个数据库插入到另一个数据库插入的php sql查询

从一个数据库插入到另一个数据库插入的php sql查询,php,sql-server,Php,Sql Server,我有一个脚本,它连接到一个数据库,运行一个SQL查询,然后试图将其导入另一个服务器数据库,我已经配置了所有正确的数据库,我相信,但我无法使它工作 echo date("l jS \of F Y h:i:s A"). " Collecting Sage CRM records.\r\n"; $sql="SELECT StockItem.Code AS 'Stock Code', StockItem.Name AS 'Description', WarehouseItem.ConfirmedQty

我有一个脚本,它连接到一个数据库,运行一个SQL查询,然后试图将其导入另一个服务器数据库,我已经配置了所有正确的数据库,我相信,但我无法使它工作

echo date("l jS \of F Y h:i:s A"). " Collecting Sage CRM records.\r\n";
$sql="SELECT StockItem.Code AS 'Stock Code',
StockItem.Name AS 'Description', 
WarehouseItem.ConfirmedQtyInStock+WarehouseItem.UnconfirmedQtyInStock AS 'Available Stock', 
StockItem.FreeStockQuantity AS 'Free Stock', 
WarehouseItem.QuantityAllocatedStock AS 'Allocated Stock', 
WarehouseItem.QuantityOnPOPOrder AS 'Qty on PO', 
Warehouse.Name AS 'Warehouse Location', 
StockItem.AnalysisCode1 AS 'Product Class', 
ProductGroup.Code AS 'Product Category'
FROM MMS_Global.dbo.ProductGroup ProductGroup, 
MMS_Global.dbo.StockItem StockItem, MMS_Global.dbo.Warehouse Warehouse, 
MMS_Global.dbo.WarehouseItem WarehouseItem
WHERE WarehouseItem.WarehouseID = Warehouse.WarehouseID 
AND StockItem.ItemID = WarehouseItem.ItemID 
AND ProductGroup.ProductGroupID = StockItem.ProductGroupID 
AND ((StockItem.StockItemStatusID Like '0%'));";

$rs=sqlsrv_query($consage, $sql, array(), array( "Scrollable" => 'static' )) or die ( print_r( sqlsrv_errors(), true));

$record=0;
$fullcount=sqlsrv_num_rows ($rs ) ;
echo date("l jS \of F Y h:i:s A"). " Adding ".$fullcount." Stock records to in ACT!.\r\n";



While($row=sqlsrv_fetch_array($rs))
    {
    $row[0] = str_replace("'", "''", $row[0]);
    $sql3="insert into CUST_Inventory (
        InventoryID,
        [CUST_StockCode_065752395],
        [CUST_Description_065825443],
        [CUST_AvailableStock_065849679],
        [CUST_FreeStock_065906993],
        [CUST_AllocatedStock_065925572],
        [CUST_QtyonPO_065941916],
        [CUST_WarehouseLocation_070001667],
        [CUST_ProductClass_070019497],
        [CUST_ProductCategory_070847021],
        EDITDATE,
        CREATEDATE,
        CREATEUSERID,
        MANAGEUSERID,
        ISPRIVATE,
        EDITUSERID)
        Values(
        Newid(),
        '".$row['Stock Code']."',
        '".$row['Description']."',
        '".$row['Available Stock']."',
        '".$row['Free Stock']."',
        '".$row['Allocated Stock']."',
        '".$row['Qty on PO']."',
        '".$row['Warehouse Location']."',
        '".$row['Product Class']."',
        '".$row['Product Category']."',
        getdate(),
        getdate(),
        CONVERT(uniqueidentifier,'F43F5A16-1E5F-4C81-B7C9-FA6350954D24'),
        CONVERT(uniqueidentifier,'F43F5A16-1E5F-4C81-B7C9-FA6350954D24'),
        0,
        CONVERT(uniqueidentifier,'F43F5A16-1E5F-4C81-B7C9-FA6350954D24')
    );";


    $stmt = sqlsrv_query( $con, $sql3 );
if( $stmt === false ) {
    if( ($errors = sqlsrv_errors() ) != null) {
        foreach( $errors as $error ) {
            echo "SQLSTATE: ".$error[ 'SQLSTATE']."<br />";
            echo "code: ".$error[ 'code']."<br />";
            echo "message: ".$error[ 'message']."<br />";
        }
    }
}
}
echo date("l jS \of F Y h:i:s A")." ".$record." of ".$fullcount." records added.\r\n";
?>




echo日期(“l jS\of F Y h:i:sa”)。“正在收集Sage CRM记录。\r\n”;
$sql=“选择StockItem.Code作为‘股票代码’,
StockItem.名称为“Description”,
WarehouseItem.已确认的QTYINSTOCK+WarehouseItem.未确认的QTYINSTOCK为“可用库存”,
StockItem.FreeStockQuantity为“自由库存”,
WarehouseItem.QuantityAllocatedStock作为“已分配库存”,
WarehouseItem.QuantityOnPOPOrder为“采购订单数量”,
仓库。名称为“仓库位置”,
StockItem.AnalysisCode1作为“产品类别”,
ProductGroup。代码为“产品类别”
从MMS_Global.dbo.ProductGroup产品组,
MMS_Global.dbo.StockItem StockItem,MMS_Global.dbo.Warehouse仓库,
MMS_Global.dbo.WarehouseItem WarehouseItem
其中WarehouseItem.WarehouseID=WarehouseID.WarehouseID
和StockItem.ItemID=WarehouseItem.ItemID
并且ProductGroup.ProductGroupID=StockItem.ProductGroupID
和((StockItem.StockItemStatusID类似于“0%”);“;
$rs=sqlsrv_query($consage,$sql,array(),array(“可滚动的”=>“静态”)或die(print_r(sqlsrv_errors(),true));
$record=0;
$fullcount=sqlsrv_num_行($rs);
回音日期(“l jS\of F Y h:i:s A”)。正在将“$fullcount.”库存记录添加到ACT中。\r\n;
While($row=sqlsrv\u fetch\u数组($rs))
{
$row[0]=str_replace(“'”、“''”、$row[0]);
$sql3=“插入客户库存”(
InventoryID,
[CUST_StockCode_065752395],
[CUST_Description_065825443],
[CUST_AvailableStock_065849679],
[CUST_FreeStock_065906993],
[客户分配库存量065925572],
[CUST_QtyonPO_065941916],
[CUST_仓库位置\u 070001667],
[CUST_ProductClass_070019497],
[CUST_ProductCategory_070847021],
编辑日期:,
CREATEDATE,
CREATEUSERID,
MANAGEUSERID,
我个人,
编辑用户ID)
价值观(
Newid(),
“$row[‘股票代码’]”,
“$row['Description']”,
“$row[‘可用股票’]”,
“$row[‘免费股票’]”,
“$行['分配股票']”,
“$行['采购订单数量']”,
“$row['Warehouse Location']”,
“$row['Product Class']”,
“$行[“产品类别”]。”,
getdate(),
getdate(),
转换(唯一标识符“F43F5A16-1E5F-4C81-B7C9-FA6350954D24”),
转换(唯一标识符“F43F5A16-1E5F-4C81-B7C9-FA6350954D24”),
0,
转换(唯一标识符“F43F5A16-1E5F-4C81-B7C9-FA6350954D24”)
);";
$stmt=sqlsrv\u查询($con,$sql3);
如果($stmt==false){
如果($errors=sqlsrv_errors())!=null){
foreach($errors作为$error){
回显“SQLSTATE:”.$error['SQLSTATE'].“
”; 回显“代码:.”错误['code']。“
”; 回显“消息:.”错误['message']。“
”; } } } } 回显日期(“l jS\of F Y h:i:s A”); ?>
我的错误总是在第一行,它没有插入任何数据,我也不知道为什么,请任何人帮帮忙好吗

谢谢

脚本正在尝试导入,但在第一行给了我一个错误,我看了一下,没有发现任何错误

将varchar值“.00000”转换为数据类型int时,我得到的错误是
]转换失败。


由于php代码看起来很好,sql查询也很好,所以我无法找出问题所在。

排序后,我不得不调整所有查询

CAST(WarehouseItem.QuantityAllocatedStock AS varchar(50)) ,
CAST(WarehouseItem.QuantityOnPOPOrder AS varchar(50)), ```

错误消息到底是什么?在插入到中有16个字段,但在值部分只有15个值。另外,在语句中始终使用参数。@Zhorov,错误是echo“股票代码错误”。$row[0]。“\r\n”;我认为您应该通过其正确的索引来访问该值,比如$row['Stock Code']Hi@Zhorov,我这样做了,我的错误是:SQLSTATE:42000
Code:102
message:[Microsoft][ODBC Driver 17 for SQL Server][SQL Server]附近的语法不正确'。
我看不出SQL查询有任何错误,因为它工作正常。