現在のコードに問題があります。実際、どちらの方法でも正しい方向に進んでいるかどうかはわかりません。
私の現在のスクリプト(合計)は写真をアップロードし、MySQLデータベースからIDを返します。写真を選択すると、タグも付けられます。これらのタグを関連付けるために、後でクエリを実行するためにtag_idとphoto_idを単純に組み合わせるテーブル'tagrefs'を選択しました。テーブル'tags'は、tag_idとtag_nameで構成されます。テーブル'photos'にはたくさんのフィールドがあり、関連するのはphoto_idだけです。
現在、POSTを介してタグを渡します。
$tags = trim($_POST['tags']);
$tags = preg_replace('/\s+/', '', $tags);
$tags = htmlspecialchars($tags);
$tags = mysql_real_escape_string($tags);
$tags = strip_tags($tags);
$tags = explode(",", $tags);
$insert = $dbh->prepare('INSERT INTO tags (tag_name) VALUES (:tag)');
$insert->bindParam(':tag', $tag, PDO::PARAM_STR);
foreach ($tags as $tag) $insert->execute();
$select = $dbh->prepare('SELECT tag_id FROM tags WHERE tag_name = (:tag)');
$select->execute();
$result = $select->fetch(PDO::FETCH_ASSOC);
print_r($result);
print("\n");
$ selectまでは、完全に機能します。タグが挿入され、写真がアップロードされます。ピーチー。次に、追加したtag_nameのtag_idを取得するものを作成する必要があります。次に、それをphoto_idと組み合わせて、「tagrefs」に挿入する必要があります。一番下の$selectは、ユーザーがPOSTした文字列と比較して、作成したばかりのtag_idを取得しようとして失敗したものです。私が考えていた方法は、それらを取得してから、photo_idとtag_idを使用して新しい配列を作成し、値を「tagrefs」に挿入することです。
それはすべて非常に複雑に聞こえ、おそらくそれを行うためのはるかに優れた/より安全な方法がありますが、1時間のグーグルは役に立ちませんでした。