Rouven: Datenbank - Variable wird nicht eingetragen

Beitrag lesen

Hello,

generell mal eine Frage, und die ist einfach nur eine Frage: funktionieren die doppelten Anführungszeichen im SQL anstandslos? Ich selbst benutze in SQL immer einfache Anführungszeichen.

mysql_query("Update Buch Set antwort="ja" WHERE id="$ziel"");

Potenzial für SQL-Injection. Warum benutzt du hier nicht, wie unten auch, mysql_real_escape_string?
Weiterhin führst du keine Fehlerbehandlung durch, d.h. das Statement könnte schief gegangen sein.

$name_set = mysql_query("SELECT name FROM Biographie WHERE id="$zugang" ");

hier ist ebenfalls keine Fehlerbehandlung, es könnte kein Ergebnis geben. Es gilt der selbe Hinweis auf SQL-Injection wie oben.

mysql_query("INSERT INTO Antworten (antwort, von, kommentar, datum, zeit) VALUES ("$ziel", "$name", "$antwort", "$datum", "$zeit")");

Zu guter vorletzt: es empfiehlt sich als Debugging-Technik seine Statements nicht direkt im mysql_query aufzubauen:

  
$query = "SELECT ...";  
mysql_query($query);  

Mit dieser Schreibweise kannst du schneller eine Debugausgabe des Statements erzwingen, z.B. sogar über eine Konfigurationseinstellung:

  
$query = "SELECT ...";  
// es wird eine Konfigurationskonstante DEBUG vorausgesetzt...  
if (DEBUG) {  
   echo $query;  
}  
mysql_query($query);  

Und zu aller letzt: Ich hab mehrfach SQL-Injection in den Mund genommen, die Nutzung von mysqli zusammen mit Prepared Statements kann dir einiges an Escaping ersparen.

MfG
Rouven

--
-------------------
sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
Don't lick your wounds: celebrate them. The scars you bear are the signs of a competitor.  --  character Richard Webber on Grey's Anatomy: 'Where the wild things are'