|
You last visited: Today at 09:33
Advertisement
php mysql problem
Discussion on php mysql problem within the Web Development forum part of the Coders Den category.
04/21/2012, 18:02
|
#1
|
elite*gold: 0
Join Date: Mar 2012
Posts: 22
Received Thanks: 1
|
php mysql problem
Hallo, ich habe ein kleines problem mit mysql. Ich möchte aus einer Datenbank von einem benutzernamen die id bekommen danach mit der id in einer anderen tabelle alle einträge auslesen und in einer zahl darstellen lassen doch leider kommt immer der fehler:
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 '-players WHERE playername=SuGGl LIMIT 1' at line 1
Hier ist der Code:
PHP Code:
<?php
$user = $_SESSION['name'];
$frage = "SELECT playername, playerid FROM lb-players WHERE playername=$user LIMIT 1";
$ergebnis = mysql_query($frage) or die(mysql_error());
$row = mysql_fetch_object($ergebnis);
$id = $row->playerid;
$frage = "SELECT * FROM lb-world WHERE playerid LIKE '$id'";
$anz = mysql_num_rows($frage) or die(mysql_error());
echo "Du hast ".$anz." Blöcke bearbeitet";
?>
Ich hoffe mir wird einer helfen
LG SuGGl
|
|
|
04/21/2012, 18:45
|
#2
|
elite*gold: 166
Join Date: Mar 2011
Posts: 207
Received Thanks: 25
|
Beispiel:
PHP Code:
$query= MYSQL_QUERY(" SELECT tabelle1.*,tabelle2.alter,tabelle2.id FROM tabelle1 LEFT JOIN tabelle2 ON (tabelle2.id = tabelle1.id) WHERE tabelle1.name='Hans' ");
Anpassen sollte ja selber klappen
|
|
|
04/21/2012, 20:07
|
#3
|
elite*gold: 0
Join Date: Apr 2010
Posts: 1,674
Received Thanks: 229
|
$frage = "SELECT playername, playerid FROM lb-players WHERE playername Like $user LIMIT 1";
|
|
|
04/23/2012, 11:54
|
#4
|
elite*gold: 44
Join Date: May 2010
Posts: 2,053
Received Thanks: 1,747
|
Quote:
Originally Posted by SuGGl
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 '-players WHERE playername=SuGGl LIMIT 1' at line 1
PHP Code:
$frage = "SELECT playername, playerid FROM lb-players WHERE playername=$user LIMIT 1";
|
Beim Vergleich des Namens muss die Variable "$user" in Anführungszeichen gesetzt werden:
Code:
"SELECT playername, playerid FROM lb-players WHERE playername=`$user` LIMIT 1"
Ein Tipp: Sieh zu, dass alle Variablen in einer Query ordentlich escaped sind.
Und JOINs zu benutzen ist eleganter und auch technisch gesehen schneller.
|
|
|
04/23/2012, 14:23
|
#5
|
elite*gold: 100
Join Date: Sep 2009
Posts: 8,143
Received Thanks: 2,763
|
Hier noch etwas Allgemeines zur Sicherheit:
Quote:
- Escapen Sie jede nicht numerische Benutzereingabe, welcher zur Datenbank weitergereicht werden soll mit der jeweiligen datenbankspezifischen Escape-Funktion (z.B. mysql_real_escape_string(), sqlite_escape_string() usw.). Wenn keine datenbankspezifischen Escapemechanismen existieren können in der Regel (je nach Datenbanktyp) auch die Funktion addslashes() und addcslashes() von Nutzen sein. Siehe auch das erste Beispiel. Wie dieses Beispiel zeigt, sind in den statischen Teil der Abfrage eingebrachten Escapes nicht genug, und können leicht gehacked werden.
- Geben Sie keinerlei datenbankspezifische Informationen aus, speziell über das Schema, egal wie (auf ehrliche oder unehrliche Weise). Siehe auch Fehlerbehandlung und Error Handling and Logging Functions.
- Sie können stored procedures und vorher definierte Cursor verwenden, um den Datenzugriff zu abstrahieren, sodass Benutzer nicht direkt auf Tabellen oder Views zugreifen, aber diese Lösung hat andere Auswirkungen.
|
Quelle:
|
|
|
04/23/2012, 15:53
|
#6
|
elite*gold: 0
Join Date: Jun 2010
Posts: 3,406
Received Thanks: 2,024
|
Quote:
Originally Posted by GAMER19951
$frage = "SELECT playername, playerid FROM lb-players WHERE playername Like $user LIMIT 1";
|
bei nem like kann es dir passieren, dass du versehentlich nen falschen user selectest
|
|
|
04/23/2012, 21:46
|
#7
|
elite*gold: 0
Join Date: Apr 2010
Posts: 1,674
Received Thanks: 229
|
@ NotEnoughForYou o.O wieso wo ist den genau der unterschied.. wäre nett wen du mir das erklären könnteest interessiert mich jetzt =DD
mfg
gamer
|
|
|
04/23/2012, 22:05
|
#8
|
elite*gold: 1329
Join Date: Jun 2009
Posts: 1,873
Received Thanks: 960
|
LIKE = eng. "so wie", spielt also auf die Ähnlichkeit, nicht Gleichheit an.
Siehe
|
|
|
04/25/2012, 23:31
|
#9
|
elite*gold: 146
Join Date: May 2009
Posts: 3,764
Received Thanks: 6,974
|
PHP Code:
<?php $result = mysql_query("SELECT COUNT(*) FROM `lb-world` WHERE `playerid` = (SELECT `playerid FROM `lb-players` WHERE playername = '".$user."')") or die (mysql_error()); $anz = mysql_result($result, 0); echo "Du hast ".$anz." Blöcke bearbeitet" ?>
Ungetestet.
|
|
|
 |
Similar Threads
|
MySql Problem
04/04/2012 - Metin2 Private Server - 0 Replies
Hi,
habe ein Problem mit meinem Mysql Server auf freebsd. Der Server selbst hat 24GB Ram. Habe per Tuning-primer die my.cnf eingestellt die folgendermaßen aussieht:
# The MySQL server
sync_binlog=1
port = 3306
socket = /tmp/mysql.sock
|
MySQL problem..
03/07/2012 - Metin2 Private Server - 0 Replies
Hallo zusammen :)
Ich habe ein Problem bezüglich MySQL..
wenn ich über Navicat bonis switche.. sehe ich ingame nichts (auch nach reboot nicht)
im errorfile steht folgendes:
Ausschnitt:
SYSERR: Mar 7 19:40:36 :: ChildLoop: AsyncSQL: query failed: Unknown column 'vnum' in 'field list' (query: INSERT DELAYED INTO log (type, time, who, x, y, what, how, hint, ip, vnum) VALUES('ITEM', NOW(), 2, 2986, 0, 30000006, 'SET_SOCKET', '', '', 72702) errno: 1054)
SYSERR: Mar 7 19:40:40 ::...
|
MySQL Problem
11/13/2011 - Technical Support - 9 Replies
Wenn ich IP, User sowie Passwort eingebe, kommt direkt das:
1130 - Host 'p5B1763D8.dip.t-dialin.net' is not allowed to connect to this MySQL server
Woran liegt das?
Danke im vorraus
|
[PROBLEM]:[Root]:Mysql:[...]/tmp/mysql.sock
10/22/2011 - Metin2 Private Server - 3 Replies
Hallo Community habe jetzt seit ein Paar Tagen einen Fehler Namens:
failed, retrying in 5 secondsmysql_real_connect: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Screen:
http://img809.imageshack.us/img809/9805/helpg.png
|
Problem mit MySQL
08/18/2011 - Metin2 Private Server - 8 Replies
Nabend,
ich habe ein Problem mit MySQL und zwar,
wenn ich einen Datenbank account erstellen will,
also das mein Kumpel auch auf meine Datenbank conecten kann,
wird das passwort was ich eingebe nicht angenommen.
z.b. 123456789 auf 8 Zahlen/Buchstaben verkürzt.
doch auch wenn ich nur 6 Zahlen/Buchstaben eingebe,
wird es auf 8 Zahlen/Buchstaben verlängert.
Sprich egal was ich eingebe,
|
All times are GMT +2. The time now is 09:34.
|
|