mysql
Übersicht

RubberBetreff: mysql |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
mal wieder ne frage....
kann ich bei ner abfrage von ner datenbank auch 2 kreterien überprüfen? also zb: where id = 1 und where name = hans ??? wie geht das? |
||
Wenn Gott mich schon liebt, dann dich erstrecht... |
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das geht fast genau so wie du es geschrieben hast, nur in Englisch ![]() Code: [AUSKLAPPEN] WHERE id=1 AND name='hans'
Möglich ist auch OR, wenn zum Beispiel nur ein Kriterium zutreffen muss. |
||
Rubber |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
vom grundsatz her also so?
$abfrage = "SELECT name_insel FROM inseln WHERE a-koordinate LIKE '$i' AND WHERE b-koordinate LIKE '$j'"; is nur, weil lauter fehler angezeigt werden.... kann aber auch was anderes sein... hab jetzt mal die fehler stelle: $abfrage = "SELECT name_insel FROM inseln WHERE a-koordinate LIKE '$i' AND WHERE b-koordinate LIKE '$j'"; $ergebnis = mysql_query($abfrage); while($row = mysql_fetch_object($ergebnis)){ wobei die letzte zeile mit fehler code (Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/rubbernb/inseln.php) angegeben wird. |
||
Wenn Gott mich schon liebt, dann dich erstrecht... |
![]() |
Wild-Storm |
![]() Antworten mit Zitat ![]() |
---|---|---|
Er schrieb:
Code: [AUSKLAPPEN] Where lalala=a AND lalala=b
Du hast geschrieben: Code: [AUSKLAPPEN] $abfrage = "SELECT name_insel FROM inseln WHERE a-koordinate LIKE '$i' AND WHERE b-koordinate LIKE '$j'
Such mal den Fehler ![]() |
||
Visit http://www.next-dimension.org
------------------------------------------------- Freeware Modelle, Texturen & Sounds: http://www.blitzforum.de/forum...hp?t=12875 |
Rubber |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
danke....
jetz seh ichs... nur der meldet immer noch den fehler.... |
||
Wenn Gott mich schon liebt, dann dich erstrecht... |
![]() |
hamZtaAdministrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schreib
Code: [AUSKLAPPEN] $ergebnis = mysql_query($abfrage) or die(mysql_error()); dann siehst du, was MySQL stört.
hamZta |
||
Blog. |
Rubber |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
der meldet den fehler aber in dieser zeile:
while($row = mysql_fetch_object($ergebnis)){ |
||
Wenn Gott mich schon liebt, dann dich erstrecht... |
![]() |
hamZtaAdministrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Natürlich meldet er den Fehler in dieser Zeile.
Mit mysql_error() bekommst du allerdings den letzten Fehler, den MySQL ausspuckte. hamZta |
||
Blog. |
Rubber |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich hab den code mal als txt hochgeladen.... :
http://rubbernb.ru.funpic.de/inseln.php.txt ich finde den fehler nicht... kann mir wer helfen.... |
||
Wenn Gott mich schon liebt, dann dich erstrecht... |
![]() |
FOODy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es könnte eventuell an den Spaltennamen liegen. (a-koordinate und b-koordinate)
Für mich sieht das aus wie "a MINUS koordinate" und "b MINUS koordinate". Versuch es mal mit: `a-koordinate` und `b-koordinate` Code: [AUSKLAPPEN] $abfrage = "SELECT `name_insel` FROM `inseln` WHERE `a-koordinate` LIKE '$i' AND `b-koordinate` LIKE '$j'";
Ich persöhnlich würde mir die ` sofort angewöhnen. (Bei Tabellen- und Spaltennamen) Gruß, FOODy |
||
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB |
![]() |
Farbfinsternis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ersmo: "a-koordinate" funktioniert nicht da SQL versucht eine Variable namens "koordinate" von einer anderen namens "a" abzuziehen.
Zweitens: Wenn Du die Werte nicht selektierst, kannst Du sie nicht vergleichen: Code: [AUSKLAPPEN] // Das funktioniert nicht : SELECT id FROM tabelle WHERE a = 1 AND b = 1 Code: [AUSKLAPPEN] // Aber das funktioniert : SELECT id, a, b FROM tabelle WHERE a = 1 AND b = 1 |
||
Farbfinsternis.tv |
![]() |
FOODy |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Farbfinsternis:
Farbfinsternis hat Folgendes geschrieben: Zweitens: Wenn Du die Werte nicht selektierst, kannst Du sie nicht vergleichen:
Code: [AUSKLAPPEN] // Das funktioniert nicht :
SELECT id FROM tabelle WHERE a = 1 AND b = 1 Code: [AUSKLAPPEN] // Aber das funktioniert :
SELECT id, a, b FROM tabelle WHERE a = 1 AND b = 1 Man kann sehr wohl Spaltenwerte vergleichen ohne die Spalten selber zu selektieren. Gruß, FOODy |
||
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB |
Rubber |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich danke für die vielen posts...
wenn ich also 'a-koordinate' verwende, sollte der fgehler nicht mehr bestehn.... oder ich ändere den namen gleich um.... ich dachte halt, mysql denkt nur, das es sich um variablen handelt, wenn $ davor ist..... aber es scheint ja anders zusein... |
||
Wenn Gott mich schon liebt, dann dich erstrecht... |
![]() |
FOODy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nicht ' sondern ` (SHIFT + Taste Links von Backspace + Leertaste).
Wenn du ' benutzt wird es als String erkannt ![]() Gruß, FOODy EDIT: @Variable: Die PHP Variablen die in Doppelten ausführungszeichen sind ( " ) werden geparsed. Code: [AUSKLAPPEN] $i = "FOODy";
Print "Hallo $i"; // Hallo FOODy Print 'Hallo $i'; // Hallo $i |
||
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB |
Rubber |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ohoh...
son paare striche und so viele bedeutungen.... ![]() |
||
Wenn Gott mich schon liebt, dann dich erstrecht... |
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
ÖÖÖhm... denkt mal jemand an die Sicherheit ?!
Man schreibt nicht "SELECT boing FROM bla WHERE dings=$blubb" Richtig wär 'SELECT `boing` FROM `bla` WHERE `dings`=\''.$blubb.'\';'; Sonst kann man da leicht ne komplette Datenbank zerstören/auslesen was auch immer ![]() |
||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
![]() |
FOODy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Meist sind die Server schon so eingestellt, dass MySQL Injection nur durch wirklich geniale Fehler möglich ist. (Automatisches Escapen von $_COOKIE, $_POST, $_GET, $_REQUEST)
Beispiel: Wenn der benutzer eine Zahl eingeben muss würde die Abfrage mehr oder weniger so aussehen. "SELECT boing FROM bla WHERE dings=$blubb" Es werden keine ' bzw " benötigt da es um eine Zahl geht. Es kann aber passieren das der benutzer keine Zahl eingibt. Um ein MySQL Injection zu verhindern kann man davor einfach den Wert in ein Int-Wert umwandeln. $blubb = (int)$blubb; Oder $blubb = intval($blubb); Wenn man eine Zeichenkette vergleicht braucht man sich für gewöhnlich keine sorgen machen, da meißt automatisch escaped wird. Notfalls kann man es auch manuell machen mit: $blubb = addslashes($blubb); Gruß, FOODy |
||
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB |
Nox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Oder 'mysql_real_escape_string()'. | ||
![]() |
BlitzChecker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hatte mal ne kleine Erklärung zu SQL-Injections geschrieben...
http://www.xairro.de/content/view/24/7/ |
||
www.xairro.com |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group