将日期传递给PHP中的ADO命令对象参数



我的代码看起来像这样:

$cmd = new com('ADODB.command');
$cmd->activeConnection = $CONNECTION;
$sql = 'UPDATE MyTable SET WhenPlanned = ? WHERE ID = ?';
$cmd->commandText = $sql;
$p1 = $cmd->createParameter('WhenPlanned', adDate, adParamInput, 0, $dateVal)
$p2 = $cmd->createParameter('ID', adInteger, adParamInput, 4, $intVal); 
$cmd->parameters->append($p1);
$cmd->parameters->append($p2);
$cmd->execute();

这只会产生以下错误:PHP致命错误:未捕获的异常'com_exception'与消息'来源:ADODB。命令描述:应用程序在当前操作中使用了错误类型的值。'

$dateVal变量是日期的字符串表示形式。我试过创建一个PHP datetime对象来传递,但无济于事……有人知道如何传递一个日期,ADO参数将接受作为一个参数在PHP?谢谢!

我创建了一个测试表来隔离和实验日期参数,并找到了一些有效的方法。我猜是日期格式的问题。我传入的日期看起来像下面date()函数中的字符串,没有格式化。

$cmd = new com('ADODB.command');
$cmd->activeConnection = $CONNECTION[SYSTEM];
$sql = 'INSERT INTO TestDateTable (testdate) VALUES (?)';
$cmd->commandText = $sql;
$d = date('Y-m-d H:i:s', strtotime('10/26/2015'));
$p1 = $cmd->createParameter('testdate', adDate, adParamInput, 0,  $d);
$cmd->parameters->append($p1);
$cmd->execute();

最新更新