私は私のデータベースの 'ドメイン'テーブルにドメインを挿入するためのフォームを持っています。PDO配列の値を挿入
フォームの一部には、一連のチェックボックスとして表示され、配列として処理される、そのドメインに対して提供するサービスのリストが含まれています。これらのサービスは、ドメインIDとサービスIDを持つ2つの列を持つmarketing_lookupテーブルに挿入されます。
私はPDOを使用してmysqlのinsert文を書き直そうとしています。
ドメインテーブルにドメインを挿入することができます。
marketing_lookupテーブルにservices配列を挿入するのに役立つ必要があります。私はあなたが:id
と:serviceid
のプレースホルダを作成する必要がありますので。あなたがバインドする必要があります
...
code inserting the domain into the domain table here
...
//start inserting services here
if ($services == '') $services = array();
$services = $_POST['services'];
$id = $conn->lastInsertId(); //obtained from above
if (!isset($_POST['services'])):
echo 'Nothing Selected';
else:
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare('INSERT IGNORE INTO marketing_lookup SET
`domain_id` = :id,
`service_id` = :serviceid')
foreach ($services as $serviceid) {
$a = array (':1'=>$serviceid['1'],
':2'=>$serviceid['2']);
if ($stmt->execute($a)) {
//Query succeeded
}
else {
// Query failed.
echo $q->errorCode();
}
// close the database connection
$conn = null;
} // end foreach
} //end try
catch(PDOException $e) {
echo $e->getMessage();
}
endif;
?>
問題は何ですか? 'var_dump($ services)'を試して、あなたがそこに持っているキーを見たことがありますか? –