Deine Variante ist aber - wie ich finde - nicht gerade besonders gut lesbar.Dann hast du dein Problem mit den Anführungsstrichen nicht mehr ;-)
Was jedoch alle die hier geannten Queries gemeinsam haben ist der nicht vorhandene Schutz gegen Injections. Wenn jemand zum Beispiel ein Single Quote (Hochkomma) eingibt, kann der Query nicht ausgeführt werden. Mit ein bisschen Gefummel kann jemand so alle Daten löschen.
Ein einfaches mysql_real_escape_string hilft da ungemein, um so etwas vorzubeugen.
PHP:
mysql_query("INSERT INTO cds SET titel = '" . mysql_real_escape_string( $_POST['titel'] ) . "', interpret = '" . mysql_real_escape_string( $_POST['titel'] ) . "', kv = '" . mysql_real_escape_string( $_POST['kv'] ) . "', backup = '" . mysql_real_escape_string( $_POST['backup'] ) . "'");
PHP:
mysql_query(sprintf(
'INSERT INTO cds SET titel = "%s", interpret = "%s", kv = "%s", backup = "%s"',
mysql_real_escape_string( $_POST['titel'] ) ,
mysql_real_escape_string( $_POST['interpret'] ),
mysql_real_escape_string( $_POST['kv'] ),
mysql_real_escape_string( $_POST['backup'] )
));
Dabei ist lediglich zu beachten, das %s einen String erwartet, erwartet man einen Integer so nimmt man %d.