Ergebnis 1 bis 7 von 7
  1. #1
    Kunde
    Registriert seit
    09.03.2017
    Beiträge
    15

    MySQL Select mit String. Richtige Schreibweise?

    Hallo Zusammen,

    Wie ist die richtige Schreibweise bei einer Abfrage der Datenbank mit Where = $id?

    PHP-Code:
    $sql_abfragen "SELECT * FROM Test WHERE id = $id"
    oder

    PHP-Code:
    $sql_abfragen "SELECT * FROM Test WHERE id = ".$id.""
    Beide funktionieren, Nur welche ist die korrekte Schreibweise?

    Leider findet man bei Google mehrere Varianten.
    Geändert von Domainfreund (08.06.2017 um 00:27 Uhr)

  2. #2
    Kunde
    Registriert seit
    09.03.2017
    Beiträge
    15

    AW: MySQL Select mit String. Richtige Schreibweise?

    Beispiel 2:

    Da ich gerne Strings in Hochkommatas setze, welches wäre bei diesem Beispiel richtig?

    PHP-Code:
    $sql_abfragen 'SELECT * FROM Test WHERE bla = "$varchar"'
    oder

    PHP-Code:
    $sql_abfragen 'SELECT * FROM Test WHERE bla = "'.$varchar.'"'
    oder

    PHP-Code:
    $sql_abfragen 'SELECT * FROM Test WHERE bla = \''.$varchar.'\''
    Geändert von Domainfreund (08.06.2017 um 00:39 Uhr)

  3. #3
    Forenexperte² (Reseller) Avatar von Enigma
    Registriert seit
    20.07.2001
    Beiträge
    17.932

    AW: MySQL Select mit String. Richtige Schreibweise?

    Zitat Zitat von Domainfreund Beitrag anzeigen
    PHP-Code:
    $sql_abfragen "SELECT * FROM Test WHERE id = $id"
    oder

    PHP-Code:
    $sql_abfragen "SELECT * FROM Test WHERE id = ".$id.""
    Beide funktionieren, Nur welche ist die korrekte Schreibweise?
    Korrekt sind beide. Ich selbst bevorzuge die zweite, wobei allerdings am Ende kein leerer String angehängt werden muss (keine Ahnung, warum man das so oft sieht):

    PHP-Code:
    $sql_abfragen "SELECT * FROM Test WHERE id = " $id
    Schau Dir auch mal den Doku-Abschnitt über Prepared Statements an, insbesondere den Abschnitt "Escaping and SQL injection" ziemlich weit unten (sorry, wurde wohl bisher nicht übersetzt). Prepared Statements sind nicht ganz so performant, bieten dafür aber "out of the box" mehr Sicherheit.

    Gruß,
    Jan
    Two hours of trial and error can save ten minutes of manual reading.

  4. #4
    Forenexperte² (Reseller) Avatar von Enigma
    Registriert seit
    20.07.2001
    Beiträge
    17.932

    AW: MySQL Select mit String. Richtige Schreibweise?

    Zitat Zitat von Domainfreund Beitrag anzeigen
    Da ich gerne Strings in Hochkommatas setze, welches wäre bei diesem Beispiel richtig?

    PHP-Code:
    $sql_abfragen 'SELECT * FROM Test WHERE bla = "$varchar"'
    Der eigentliche String wird hier mit einfachen Anführungszeichen begrenzt. $varchar wird daher als Text interpretiert, nicht als Variable.

    Zitat Zitat von Domainfreund Beitrag anzeigen
    oder

    PHP-Code:
    $sql_abfragen 'SELECT * FROM Test WHERE bla = "'.$varchar.'"'
    oder

    PHP-Code:
    $sql_abfragen 'SELECT * FROM Test WHERE bla = \''.$varchar.'\''
    Das ist beides okay. Ich bin allerdings kein Fan von unnötigem Escapen, daher würde ich Deine Variante 2 oder die "Umkehrung"

    PHP-Code:
    $sql_abfragen "SELECT * FROM Test WHERE bla = '".$varchar."'"
    verwenden (mein persönlicher Favorit). Denkbar ist auch

    PHP-Code:
    $sql_abfragen "SELECT * FROM Test WHERE bla = '$varchar'"
    Es führen viele Wege nach Rom - Du musst schauen, was Dir am leichtesten fällt. Beziehe mit ein, bei welchen Varianten Dein Editor bzw. Deine Entwicklungsumgebung (IDE) das Syntax-Highlighting korrekt handhabt. Manche Editoren haben Schwierigkeiten, wenn man Variablen einfach in den (mit doppelten Anführungszeichen begrenzten) String hineinschreibt.

    Gruß,
    Jan
    Two hours of trial and error can save ten minutes of manual reading.

  5. #5
    Kunde
    Registriert seit
    09.03.2017
    Beiträge
    15

    AW: MySQL Select mit String. Richtige Schreibweise?

    Super. Danke dir vielmals. Dachte es wäre halt irgendwo in den PHP Richtlinien festgelegt wie es denn nun RICHTIG wäre. Es ist ja alles auf dieser Welt genormt

  6. #6
    Forenexperte² (Reseller) Avatar von Enigma
    Registriert seit
    20.07.2001
    Beiträge
    17.932

    AW: MySQL Select mit String. Richtige Schreibweise?

    Zitat Zitat von Domainfreund Beitrag anzeigen
    Super. Danke dir vielmals. Dachte es wäre halt irgendwo in den PHP Richtlinien festgelegt wie es denn nun RICHTIG wäre. Es ist ja alles auf dieser Welt genormt
    Nun ja, es gibt die PSR-Empfehlungen (PSR = PHP Standards Recommendations), die einzuhalten durchaus Sinn ergibt, vor allem, wenn man mit anderen zusammen an Projekten arbeitet. Allerdings haben auch viele Teams / Projekte ihre eigenen, abweichenden Coding Style Guides.

    PSR2 befasst sich mit dem Coding Style, dort wird allerdings nichts Entsprechendes erwähnt. Dafür aber in den zugehörigen optionalen Coding Style Guide Additions. Unter Strings and Concatenation erhältst Du entsprechende Empfehlungen, die mit meinen Tipps übereinstimmen. Aber wie gesagt, das alles ist keineswegs bindend; erlaubt ist, was (zuverlässig) funktioniert.

    Gruß,
    Jan
    Two hours of trial and error can save ten minutes of manual reading.

  7. #7
    Kunde
    Registriert seit
    09.03.2017
    Beiträge
    15

    AW: MySQL Select mit String. Richtige Schreibweise?

    Vielen Dank. Hier wird man wenigstens geholfen. Auf diversen anderen Plattformen wird man nur zerissen wenn der Code unsauber ist oder mal ein <b> statt ein <strong> verwendet wird.

Ähnliche Themen

  1. mysql select Teilstring abfragen
    Von Erik im Forum Scriptsprachen / SQL / Anwendungen
    Antworten: 3
    Letzter Beitrag: 26.01.2009, 14:59
  2. Mysql - Select From ...
    Von masterframe im Forum Scriptsprachen / SQL / Anwendungen
    Antworten: 3
    Letzter Beitrag: 28.02.2006, 11:08
  3. mySQL: SELECT
    Von mental im Forum Scriptsprachen / SQL / Anwendungen
    Antworten: 0
    Letzter Beitrag: 27.09.2002, 13:50
  4. MYSQL, Select, JOIN
    Von docX im Forum Scriptsprachen / SQL / Anwendungen
    Antworten: 3
    Letzter Beitrag: 13.08.2002, 10:30
  5. mySQL: SELECT Timeout
    Von atLife.de im Forum Scriptsprachen / SQL / Anwendungen
    Antworten: 1
    Letzter Beitrag: 25.07.2001, 08:54

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •