Передача дат параметру объекта команды 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.Command
Описание: Приложение использует значение неправильного типа для текущей операции. ‘

Переменная $ dateVal является строковым представлением даты. Я пытался создать объект datetime PHP, чтобы передать безрезультатно … Кто-нибудь знает, как передать дату, которую параметр ADO будет принимать в качестве аргумента в PHP? Спасибо!

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();

Это успешно вставил дату в моей таблице.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]