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

时间:2015-10-23 19:11:11

标签: php ado adodb

我的代码看起来像这样:

$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.Command 说明:应用程序使用错误类型的值进行当前操作。'

$ dateVal变量是日期的字符串表示形式。我已经尝试创建一个PHP日期时间对象传递无效...有没有人知道如何传递ADO参数将接受作为PHP中的参数的日期?谢谢!

1 个答案:

答案 0 :(得分:0)

我创建了一个测试表来隔离和试验日期参数,并找到了有效的方法。我想这是一个日期格式化问题。我传递的日期看起来像下面的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();

这已成功在我的表格中插入日期。