phpにネストされた配列があり、重複が存在しない場合にのみmysqlテーブルにデータを挿入しようとしています。複製は、sensor_serialおよびdatesフィールドとの一致のみをチェックする必要があります。IDは他のフィールドに関係なく一意であるため、DUPLICATEはうまくいきません。これはテーブルレイアウトです:
CREATE TABLE IF NOT EXISTS `temps_test` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`sensor_serial` varchar(64) COLLATE latin1_general_ci DEFAULT NULL,
`temp_c` float DEFAULT NULL,
`dates` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `date` (`dates`)
)
これは私の機能しないコードです。私はそれを完全に正しく理解できないようです。
foreach ($output as $k => &$v) {
$sql = "INSERT INTO temps_test (sensor_serial,temp_c,dates) VALUES ('$v[7]','$v[3]','$v[5]') WHERE NOT EXISTS (SELECT * FROM temps_test WHERE sensor_serial='$v[7]' AND dates='$v[5]')";
$go = mysql_query($sql) or die( mysql_error() );
}
これはこの方法で行うことができますか、それとも私のアプローチは完全にオフですか?