2013-10-12 367 views
1

这里是我的SQL操作代码..缺少参数

$conn= get_db_connection(); 
    var_dump($data); 
    $PickupDate  = date('m/d/Y', strtotime($data[17])); 
    $OrderNum  = $data[4]; 
    $TrackingID  = $data[15]; 
echo $sql_1 = 'UPDATE Tracking SET Tracking.PickupDate = "'.$PickupDate.'", Tracking.Carrier = "USPS", Tracking.EmailSent = "-1", Tracking.Notes = "Inserted by TIA", Tracking.TrackingID = "'.$TrackingID.'", Tracking.External= "1" WHERE Tracking.OrderNum= "'.$OrderNum.'"'; 
$rs1=odbc_exec($conn,$sql_1); 

呼应查询结果

UPDATE Tracking SET Tracking.PickupDate = "10/03/2013", Tracking.Carrier = "USPS", Tracking.EmailSent = "-1", Tracking.Notes = "Inserted by TIA", Tracking.TrackingID = "9400110200881918988535", Tracking.External= "1" WHERE Tracking.OrderNum= "59836"

,如果我直接粘贴此查询访问(此呼应版)它的工作原理... 但是当我通过我的odbc连接运行它...错误是...

警告:odbc_exec():SQL错误:[Microsoft] [ODBC Microsoft Access Driv呃]参数太少。预计7,SQL状态07001在SQLExecDirect的在d:\ wamp1 \ WWW \ FTP \ ftp_functions.php上线94

线94 $rs1=odbc_exec($conn,$sql_1);

所以,我可以看到,每一个参数存在是我的查询时,仍然得到错误,

试图解决好几个小时,但没有成功,

可一些身体帮我吗? 由于事先

PS: pickupdate,ORDERNUM,trackingID,所有这些都是TEXT(石边工作:(对数据类型无法控制,但我相信他们应该是日期和INT型)

+1

有人可能会立即看到您的问题,但我会尝试重建查询一步一个时间,仅设置1领域,见我f的作品。然后设置2,看看是否有效。这样你就可以看到PHP中的哪个字段“缺失”。 – user2759991

+0

不是一个坏主意,现在就去试试吧.. –

+0

即使我只用一个 –

回答

0

这为我工作

$sql_1 = "UPDATE Tracking 
SET PickupDate='$PickupDate', TrackingID = $TrackingID, 
    Tracking.Carrier = 'USPS', Tracking.EmailSent = '-1', Tracking.Notes = 'Inserted by TIA', Tracking.External= '1' 
where OrderNum='$OrderNum'"; 

好像ODBC和MS-访问被创建的问题与qoutes