Отладка PDO mySql вставить пустую в базу данных вместо пустой
Я пытаюсь динамически вставитьНОЛЬ' в базу данных с помощью PDO.
СТОЛОВАЯ СТРУКТУРА:
CREATE TABLE IF NOT EXISTS `Fixes` (
`Id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'PK',
`CurrencyId` int(11) NOT NULL COMMENT 'FK',
`MetalId` int(11) NOT NULL COMMENT 'FK',
`FixAM` decimal(10,5) NOT NULL,
`FixPM` decimal(10,5) DEFAULT NULL,
`TimeStamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`Id`),
KEY `CurrencyId` (`CurrencyId`),
KEY `MetalId` (`MetalId`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=13 ;
PHP / PDO QUERY:
$sql = 'UPDATE
Fixes
SET
FixAM = :fixAM,
FixPM = :fixPM
WHERE
MetalId IN (SELECT Id FROM Metals WHERE Name = :metal) AND
CurrencyId IN (SELECT Id FROM Currencies Where Id = :currency)';
$stmt = $db->prepare($sql);
for ($i = 0; $iexecute(array(
':metal' => 'Silver',
':fixAM' => $fix['FixAM'][$i],
':fixPM' => $fix['FixPM'][$i],
':currency' => ($i+1))
);
}
например иногда значение для$fix['FixPM'][$i]
являетсяиногда 'НОЛЬ', Как мне вставить это в базу данных? Когда я запускаю запрос и затем просматриваю данные в базе данных, эта запись показывает 0,0000, а не ноль.
Как вставить значения NULL, используя PDO? предоставляет несколько решений.
Я не думаю, что я могу использовать$stmt->execute(array( ':v1' => null, ':v2' => ... ))
в соответствии с примером, потому что иногда элемент является нулевым, а иногда нет. Таким образом, мне нужно сослаться на переменную, которую я создал$fix['FixPM'][$i]
и сделать этоноль по мере необходимостиЗаранее спасибо.