私はフォルダK:/ Comicsをチェックし、それぞれの名前+番号をデータベースのテーブル名=コミックに挿入するスクリプトを書いています。今私がしたいのは、挿入クエリを実行する前にこのコミックが既に存在するかどうかを確認することです。これらの文字列の正しいチェック構文は何でしょうか?
テーブルの構造:
CREATE TABLE IF NOT EXISTS `comics` (
`id` int(100) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`issue` varchar(4) DEFAULT NULL,
`bio` longtext NOT NULL,
`pages` int(10) NOT NULL,
`size` varchar(100) NOT NULL,
`price` varchar(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;
コード:
$query = 'INSERT IGNORE INTO comics (name, issue) VALUES '.implode(',', $values);
$result = mysql_query($query);
echo ($result) ? 'Inserted successfully' : 'Failed to insert the values';
:私は仕事だろうと思ったがない(まだ、すでに存在しているデシベルに漫画を追加します)どういう
<?php
$main_folder = 'K:/Comics/'; // should be K:\Comics\ but I changed it because of the highlighting issue
$folders = glob($main_folder.'* [0-9]*', GLOB_ONLYDIR);
$comics_series = array();
foreach($folders as $folder){
$comics_series[] = preg_split('/(.+)\s(\d+)/', str_replace($main_folder, '', $folder), -1, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);
}
$values = array();
foreach($comics_series as $pair){
$values[] = "('".mysql_real_escape_string($pair[0])."', '".((int) $pair[1])."')";
}
$query = 'INSERT IGNORE INTO comics (name, issue) VALUES '.implode(',', $values);
$result = mysql_query($query);
echo ($result) ? 'Inserted successfully' : 'Failed to insert the values';
?>
私は何を忘れましたか?ドキュメントにはIGNORE
を追加するだけでいいです...
' $ query = '漫画(名前、問題)の値を挿入します。' .implode( '、'、$ values)。 '重複キー更新でcomicissue = comicissue '; '私は名前をつけて、漫画という名前のユニークなキーを発行します。それでも動作しない場合は、値を挿入するのに失敗します。私はこの新しいコードを今すぐお試しいただきありがとうございます! – rackemup420
'値の挿入に失敗しました。キー '漫画'のための重複したエントリ '2000AD-1722'。それはすでにそこにレコードをスキップしません... – rackemup420
私の答えを更新、確認してください。 – Shef