Fragen zum Ausführen von MySQL-Abfragen mit php

Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Webmaster Forum -> Hilfe für Webmaster -> PHP / MySQL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
BB-BF-BM
Gast

BeitragFragen zum Ausführen von MySQL-Abfragen mit php Antworten mit Zitat

axinio Internet Marketing
Ich bin gerade dabei, ein Skript zu schreiben und muss dazu Felder ni eine Tabelle einfügen; doch kommt immer nur Parse Error!
PHP-Code:
1
2
3
4
<?php
$sql 
"INSERT INTO " USER_VOK_TABLE "    (Vok_ID, lat_Vok, lat_Zusatz1, lat_Zusatz2, ger_Vok1, ger_Vok2, ger_Vok3, ger_Vok4, User_ID)
                VALUES ('$vok[$i]['Vok_ID']', '$vok[$i]['lat_Vok']', '$_POST[$j.'lat_Zusatz1']', '$_POST[$j.'lat_Zusatz2']', '$_POST[$j.'ger_Vok1']', '$_POST[$j.'ger_Vok2']', '$_POST[$j.'ger_Vok3']', '$_POST[$j.'ger_Vok4']', '$userdata['userid']')"
;
?>

Das ist ein Code-Ausschnitt; der Fehler ist folgender:
Code:
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting ']' in C:\DERPFAD\vokabeln.php on line 35

EDIT: In diesem Falle wäre die Zeile 35 Zeile 2


Zuletzt bearbeitet von BB-BF-BM am 25 Feb 2006 11:41, insgesamt einmal bearbeitet
19 Feb 2006 18:32
axinio Internet Marketing
V4hn
Moderator

Beitrag Antworten mit Zitat

PHP-Code:
1
2
3
4
5
<?php 
$sql 
"
INSERT INTO " 
USER_VOK_TABLE "    (Vok_ID, lat_Vok, lat_Zusatz1, lat_Zusatz2, ger_Vok1, ger_Vok2, ger_Vok3, ger_Vok4, User_ID) 
VALUES ('"
.$vok[$i]['Vok_ID']."', '".$vok[$i]['lat_Vok']."', '".$_POST[$j.'lat_Zusatz1']."', '".$_POST[$j.'lat_Zusatz2']."', '".$_POST[$j.'ger_Vok1']."', '".$_POST[$j.'ger_Vok2']."', '".$_POST[$j.'ger_Vok3']."', '".$_POST[$j.'ger_Vok4']."', '".$userdata['userid']."')"
?>

so sollte es funktionieren...
es ist immer besser variablen auserhalb von Strings einzubauen, sonst kriegst du mit den Indexen probleme.
Außerdem ist es eine verdammt große Sicherheitslücke, Post oder Get variablen ohne überprüfung auf Sonderzeichen in querys einzufügen...

_________________
20 Feb 2006 10:20
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
BB-BF-BM
Gast

Beitrag Antworten mit Zitat

V4hn hat Folgendes geschrieben:
Außerdem ist es eine verdammt große Sicherheitslücke, Post oder Get variablen ohne überprüfung auf Sonderzeichen in querys einzufügen...

Hat sich das dadurch schon etwas vermindert?
Oder wie müsste ich diese Abfrage machen?
20 Feb 2006 18:38
V4hn
Moderator

Beitrag Antworten mit Zitat

BB-BF-BM hat Folgendes geschrieben:
Hat sich das dadurch schon etwas vermindert?

kein bisschen.
kannst ja selbst mal überlegen, was passiert, wenn jemand in
$_POST[$j.'ger_Vok4']
folgenden Text übergibt:
',); DELETE FROM *; --
den Rest kannst du selbst ausmalen...
die einfachste möglichkeit wäre, vor dem Query eine Überprüfung auf die wichtigsten Sonderzeichen in dem Kontext zu machen und den Query nur auszuführen, wenn keine drin sind...

_________________
20 Feb 2006 20:39
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
BB-BF-BM
Gast

Beitrag Antworten mit Zitat

Was fürn Code müsste das denn sein?
/ was für ne Funktion benötige ich dafür?

Noch ein Problem:
Folgenden Code-Ausschnitt habe ich um Where ergänzt

(vorher)
PHP-Code:
1
2
3
4
5
<?php
$sql 
"SELECT *
    FROM " 
VOK_TABLE "
    ORDER BY Vok_ID"
;
?>


(nachher)
PHP-Code:
1
2
3
4
5
6
<?php
$sql 
"SELECT *
    FROM " 
VOK_TABLE "
    WHERE Lektion = " 
$_POST['lektion'] . "
    ORDER BY Vok_ID"
;
?>


Und Prompt kommt ein Fehler:
Code:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY Vok_ID' at line 4
21 Feb 2006 17:20
V4hn
Moderator

Beitrag Antworten mit Zitat

PHP-Code:
1
2
3
4
5
6
<?php
$sql 
"SELECT *
    FROM " 
VOK_TABLE "
    WHERE Lektion = '" 
$_POST['lektion'] . "'
    ORDER BY Vok_ID"
;
?>

Da haben ein paar Anführungszeichen gefehlt Wink

ich bin sicher, dass es hier leute gib, denen was besseres einfällt,
aber hier eine Version:
PHP-Code:
1
2
3
4
5
6
7
if(!strpos(addslashes("A".$_POST['lektion'].$_POST['lektion2']), "\\")){
$sql "SELECT *
    FROM " 
VOK_TABLE "
    WHERE Lektion = '" 
$_POST['lektion'] . "'
    ORDER BY Vok_ID"
;
...
} else echo 
"keine Sonderzeichen"

_________________
21 Feb 2006 20:38
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
BB-BF-BM
Gast

Beitrag Antworten mit Zitat

Vielen Dank Smile

Kann man auch nur Werte ausgeben lassen, wenn in einem Feld was drin steht?
Also sowas wie
Code:
WHERE xyz != abc
22 Feb 2006 19:52
V4hn
Moderator

Beitrag Antworten mit Zitat

wenn ich dich richtig verstehe, dann so:
Code:
WHERE spalte_a <> '' AND spalte_a IS NOT NULL

vergiss keine Anführungszeichen um den Vergleichsstring, sonst versuchst du, zwei spalteninhalte zu vergleichen, auch wenn die 2. spalte nicht da ist Wink

_________________
22 Feb 2006 20:14
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
BB-BF-BM
Gast

Beitrag Antworten mit Zitat

Was bedeutet dieser Fehler?:
Code:
Operand should contain 1 column(s)
24 Feb 2006 16:17
V4hn
Moderator

Beitrag Antworten mit Zitat

http://teaching-2.cs.uml.edu/MySQLd...nual/Subquery_errors.html
weiter kann ich dir hier ohne code nicht helfen...

_________________
24 Feb 2006 20:37
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
axinio Internet Marketing
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Webmaster Forum -> Hilfe für Webmaster -> PHP / MySQL Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  

Ähnliche Beiträge
Thema Webmaster Forum Antw. Autor Verfasst am
Keine neuen Beiträge Allgemeine Fragen zu Website Hilfe für Webmaster 3 Admin88 11 Nov 2011 13:25 Letzten Beitrag anzeigen
Keine neuen Beiträge Homepagetotal/ PHP&MYSQL Tutorial PHP / MySQL 6 userxy 01 Nov 2011 15:30 Letzten Beitrag anzeigen
Keine neuen Beiträge MySQL-Backup zurückspielen gibt Fehle... PHP / MySQL 5 MGoldi 27 Jul 2011 17:12 Letzten Beitrag anzeigen
Keine neuen Beiträge Mysql Abfrageproblem - Stichwort Fuss... PHP / MySQL 1 erbswurst 04 Jul 2011 18:32 Letzten Beitrag anzeigen
Keine neuen Beiträge Question answering script, automatisc... Small Talk 0 hey1hey2hey 19 Apr 2011 17:38 Letzten Beitrag anzeigen