Hallo und willkommen im Forum

Grundsätzlich solltest du keinen User-Input direkt im Query verwenden, sondern ihn stattdessen vorher escapen.
Ich schreibe meine Queries meist so:
PHP-Code:
<?php
$sSql = sprintf("SELECT `col1`, `col2` FROM `table` WHERE `id` = %u AND `name` = '%s'", $_GET['id'], $this->_quoteValue($_GET['name']));
?>
quoteValue
PHP-Code:
<?php
private function quoteValue($value)
{
if (get_magic_quotes_gpc()) {
$value = stripslashes($value);
}
return mysql_real_escape_string($value, $this->_connectionLink);
}
?>
Das heißt Eingaben, in denen ich eine Zahl erwarte, lasse ich von sprintf() in UNSIGNED INT (%u) umwandeln, alles restliche wird mit mysql_real_escape_string() abgesichert.
Um noch auf deine direkte Frage zu antworten: Natürlich ist der 2. Query besser, er ist aber immernoch schlecht.
Im 1. Query erzeugt alles, was keine Zahl ist einen Fehler und per GET lassen sich ja sofort Werte fälschen. Der 2. ist allerdings auch schlecht, denn er erlaubt ungeprüft alle Werte, läd aber zu SQL-Injections ein, sollte Magic Quotes deaktiviert sein. Der größte Graus eines PHP-Skriptes ist es, wenn es nur unter bestimmten Konfigurationen lauffähig oder sicher ist.
Außerdem erwartest du ja eine Zahlenwert für content_id, warum also anderes erlauben?
Du solltest dir also schon etwas mehr Mühe machen, die Eingabe-Werte zu validieren.