Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

31

01.06.2013, 19:10

"Tut es aber nicht" ist keine sonderlich gute Beschreibung. Warum tut es das nicht. Fehlermeldung? Oder passiert einfach gar nichts?
Im übrigen, sofern du es noch nicht hast, wäre es gut während des Developments den Error Code von PHP auf ganz hoch zu setzen:
error_reporting(E_ALL); oder am besten direkt error_reporting(-1);

edit:
Versuch mal:
$abfrage = 'INSERT INTO Tabellenname (Spalte1, Spalte2) VALUES (\'' . $var1 . '\', \'' . $var2 . '\')';
;)
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Architekt« (01.06.2013, 19:24)


32

01.06.2013, 19:25


Quellcode

1
$abfrage = "INSERT INTO Tabellenname (Spalte1, Spalte2) VALUES ('$Variable1', '$Variable2')";

[...]

Quellcode

1
$abfrage = 'INSERT INTO Tabellenname (Spalte1, Spalte2) VALUES ('.$Variable1.', '.$Variable2.')';

Die beiden Ausdrücke sind nicht äquivalent, gib sie doch mal aus.
"Theory is when you know something, but it doesn’t work. Practice is when something works, but you don’t know why. Programmers combine theory and practice: Nothing works and they don’t know why." - Anon

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

33

01.06.2013, 19:28

Genau das fiel mir auch gerade auf. Mein obiger Ausdruck sollte funktionieren.

edit:
Natürlich wäre es immer noch am sinnvollsten, Prepared Statements zu benutzen.
Da du das aber nicht kannst, würde ich vorschlagen, du schreibst dir dafür selber etwas.
Z.B.:

Quellcode

1
2
3
4
5
6
7
function mysql_bind($query, array $values) {
    foreach ($values as $key => $value) {
        $query = str_replace(':' . $key, '\'' . mysql_real_escape_string($value) . '\'', $query);
    }

    return $query;
}

Benutzung:

Quellcode

1
2
$abfrage = 'INSERT INTO Tabelle (Spalte1, Spalte2) VALUES (:var1, :var2)';
$abfrage = mysql_bind($abfrage, array('var1' => $var1, 'var2' => $var2));
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Architekt« (01.06.2013, 19:37)


Werbeanzeige