Krawall Foren

Zurück   Krawall Foren > Software Foren > Programmieren und Designen
Antwort
 
Themen-Optionen Thema durchsuchen Bewertung: Bewertung: 11 Stimmen, 2,64 durchschnittlich.
Alt 22.12.2016, 10:43   #1
hinti21
Krawallmacher
 
Benutzerbild von hinti21
 
Registriert seit: Apr 2009
Beiträge: 1.540
MySQL Prepared Statement (auf PHP-Seite)

Hallöchen!

Ich versuche per MySQL ein Statement vorzubereiten (Statement wird durch User-Eingabe generiert), doch Eclipse will MySQLi nicht akzeptieren.
Beispielsweise der Befehl
PHP-Code:
$stmt mysqli -> prepare($insert
wird nach dem "->" als echo ausgegeben.
Gibt es einen Weg Statements in MySQL (ohne MySQLi) vorzubereiten?
__________________
The End Justifies The Means...Does It?
hinti21 ist offline   Mit Zitat antworten
Alt 22.12.2016, 11:26   #2
hinti21
Krawallmacher
 
Benutzerbild von hinti21
 
Registriert seit: Apr 2009
Beiträge: 1.540
Unexpected "->"
wird als Fehler angezeigt
__________________
The End Justifies The Means...Does It?
hinti21 ist offline   Mit Zitat antworten
Alt 30.12.2016, 12:06   #3
der-dave
Auskenner
 
Benutzerbild von der-dave
 
Registriert seit: Mar 2004
Beiträge: 2.294
So geht's:
PHP-Code:
$stmt mysqli->prepare($insert
Wichtig: Leerzeichen weglassen.
Weiterhin: Das Statement muss unbedingt gegen injections abgesichert werden, gerade wenn es aus einer Benutzer-Eingabe kommt.

Ansonsten: Ein Statement kannst du ja "normal" auf String-Basis generieren:
PHP-Code:
$query 'SELECT * FROM `' $this->mappingTable[$objectName]['Table'] . '`
                   WHERE `' 
$this->mappingTable[$objectName]['ID'] . '` = \'' $objectId '\';'
__________________





der-dave ist offline   Mit Zitat antworten
Alt 03.01.2017, 09:54   #4
hinti21
Krawallmacher
 
Benutzerbild von hinti21
 
Registriert seit: Apr 2009
Beiträge: 1.540
Herzlichen Dank, Dave

Edit: Hat leider nicht funktioniert mit den Leerzeichen. Nach dem Neustart von Eclipse, wirft es wieder denselben Fehler :/
__________________
The End Justifies The Means...Does It?

Geändert von hinti21 (03.01.2017 um 10:17 Uhr).
hinti21 ist offline   Mit Zitat antworten
Alt 03.01.2017, 12:03   #5
der-dave
Auskenner
 
Benutzerbild von der-dave
 
Registriert seit: Mar 2004
Beiträge: 2.294
Ähm, ja, ich kenne Eclipse nicht, aber bei mysqli sollte es sich eig. um eine Variable handeln?

PHP-Code:
$stmt $mysqli->prepare($insert); 

[EDIT]
Eclipse ist eine IDE. Ich nutze persönlich PHPStorm. Dort ist es so, dass Klassen, Bibliotheken etc. pp. definiert werden sollten, damit PHPStorm die Struktur und Klasse kennt. Das wird via Kommentar geregelt:

Hier mal nen kurzes Beispiel:
PHP-Code:
namespace WEB\pres\controller\lebensmittel;

use 
DATA\biz\LebensmittelManager;

class 
DetailsController extends BaseControllerWithoutLogin {
   
/** @var  $Manager LebensmittelManager */
   
protected $Manager;

   public function 
transformContent() {
      echo 
$this->Manager->debugInformation();
   }


PHPStorm weiss jetzt genau, dass die Funktion debugInformation eine zusätzliche Info braucht: debugInformation(true) oder debugInformation(false) und markiert es mir daher als falsch.

Möglicherweise ist es bei dir in Eclipse ähnlich, da Eclipse nichts mit mysqli anfangen, wegen der fehlenden Definition. Aber reine Spekulation, viel Glück

Ansonsten: Objektorientiert programmieren ist echt ne Herausforderung
__________________






Geändert von der-dave (03.01.2017 um 12:15 Uhr).
der-dave ist offline   Mit Zitat antworten
Alt 03.01.2017, 13:16   #6
hinti21
Krawallmacher
 
Benutzerbild von hinti21
 
Registriert seit: Apr 2009
Beiträge: 1.540
Vielen Dank für deine ausführliche Antwort!
__________________
The End Justifies The Means...Does It?
hinti21 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge anzufügen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:35 Uhr.