PHP Anfänger
Sascha
- php
Hallo folgendes
bei einem Speichervorgan soll dieser Befehl ausgeführt werden.
$position = @mysql_query("SELECT PosID FROM completed
ORDER BY PosID ASC LIMIT 0 , 1");
Mein Speichervorgang für die DB sieht so aus:
if ($action_d == "save") {
$content_D = $_POST['projekt'];
mysql_query("insert into $table_D (ProID, content_D) VALUES ('$project_id', '$content_D')") or die(mysql_error());
}
Jetzt soll bei meinem Speichervorgang der oben genannte Befehl mit ausgeführt werden wie mach ich das. Ist vill. ne blöde Frage aber ich fange gerade erst an in PHP bitte darum um etwas Verständniss.
Vielen Dank
Sascha
Hallo erstmal,
erstmal würde cih sql grundsätrlich großschreiben werte in '' und alles andere in ``. Zur FRage:
Warum machtst du in der if-Konstrukt nicht noch einen wie obern genannten mysql_query??
(Oder hab ich da jetzt was falsch verstanden?)
Gruß
Herbert
Hello Sascha,
$position = @mysql_query("SELECT PosID FROM
completed
ORDER BY PosID ASC LIMIT 0 , 1");Mein Speichervorgang für die DB sieht so aus:
if ($action_d == "save") {
$content_D = $_POST['projekt'];
mysql_query("insert into $table_D (ProID, content_D) VALUES ('$project_id', '$content_D')") or die(mysql_error());
}
Es wäre sinnvoll, wenn Du mal beschreibst, was Du erreichen willst und dann auch sagst, ob das SELECT _vor_ oder _nach_ dem INSERT stattfinden soll und was mit dem Abfrageergebnis geschehen soll.
Außerdem solltest Du automatische Fehlermeldungen nur ausschalten, wenn Du selber eine Fehlerbehandlung durchführst. Die sollte man nach _jedem_ Query mittels Abfrage von mysql_errno() oder mysql_error() vornehmen.
Außerdem ist die Übergabe einer unbehandelten Variable aus externe Quelle ($_POST['projekt']) an ein sql-Query eine gefährliche Sicherheitslücke. Siehe 'SQL Injection' oder 'SQL Injektion'.
Vermutlich müsstest Du auch erst auf get_magic_quotes_gpc()
http://de.php.net/manual/de/function.get-magic-quotes-gpc.php
prüfen und die ggf. automatisch hinzugefügten Maskierungen wieder entfernen und dann mittels mysql_[real_]escape_string() die Variable 'entschärfen. Das nur so nebenbei.
Zwei einzelne SQL-Statements, die zum selben Vorgang gehören, muss man zudem in MySQL meistens mit einem 'Lock Tables' binden, damit die Datenintegrität gewahrt bleibt.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom