ugrás a tartalomhoz

mysql hiba

bnc1995 · 2011. Szep. 23. (P), 17.01
Sziasztok

A segítségeteket szeretném kérni. Ezt a hibaüzenetet kapom:

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 '' at line 1

Ez a kód:
<?php
if (!empty($_POST['nick']) && (!empty($_POST['PW']) && (!empty($_POST['PW2']) && 
(!empty($_POST['MAIL']) && (!empty($_POST['NEP']) && (!empty($_POST['TAJ'])))))))
     {
	  if (isset($_POST['elfogad']) and $_POST['elfogad'] == 1)
	     {
	      if ($_POST['PW'] == $_POST['PW2'])
		      {
			   
			   $mysqlconnec= mysql_connect("localhost", "root");
			   $mysqlselect= mysql_select_db("users");
              
               $mysqlinsert= mysql_query("INSERT INTO server1(ID,nick,PW,MAIL,NEP)");
			  
			   print mysql_error();
			  }
		 else
		     {
			  print "A jelszó nem egyezik!";
			 }
	     }
	  else 
	  {
	  print "Nem fogadtad el a feltételeket!";
	  }
     }
else {
      print "Nem töltöttél ki minden mezőz!";
     }
?>
segítségeteket előre is köszönöm

Bence
 
1

Javasolnám a dokumentáció

H.Z. v2 · 2011. Szep. 23. (P), 17.17
Javasolnám a dokumentáció tanulmányozását, különös tekintettel az INSERT szintaxisára!

Segítek kicsit:

A server1 táblába akarsz beszúrni egy sort úgy, hogy az ID,nick,PW,MAIL,NEP mezőknek adsz értéket. Épp csak az értékek hiányoznak...
(VALUES(...))
-------------------------
vagy itt is van valami trükk a MySQL-ben, ami miatt nem szükséges a values?
2

Akkor így kell kinéznie?

bnc1995 · 2011. Szep. 23. (P), 17.24
 $mysqlinsert= mysql_query("INSERT INTO server1(ID,nick,PW,MAIL,NEP) VALUES($_POST['nick']),$_POST['PW'],$_POST['MAIL'],$_POST['NEP']");  
3

Nagyon súlyos biztonsági rés

bb0072 · 2011. Szep. 23. (P), 17.32
Nagyon súlyos biztonsági rés és potenciálisan hibák forrása, ha a klienstől érkező változókat ellenőrzés nélkül írod be egy sql querybe. Használd ezt!
4

nem értem

bnc1995 · 2011. Szep. 25. (V), 21.28
utánanéztem és a leírások alapján erre jutottam:
$mysqlconnec= mysql_connect("localhost", "root");
			   $mysqlselect= mysql_select_db("users");
               
               $mysqlinsert= mysql_query("INSERT INTO server1(nick,PW,MAIL,NEP) VALUES(1,'x','y',2)");
			   
			   $myselect = mysql_query("SELECT * FROM server1 WHERE ID=1 ");
			   print $myselect;
			   print mysql_error();
de ezt az eredményt adja:

Resource id #4

miért?:S
5

Tán nézd meg, mit ad vissza a

H.Z. v2 · 2011. Szep. 25. (V), 21.33
Tán nézd meg, mit ad vissza a mysql_query! (nem a select olvasható eredményét, hanem egy resource-t, amiből talán mysql_fetch() függvénnyel és társaival lehet kiolvasni a tényleges eredményt...)
A root user használatát meg felejtsd el! Privilegizált usert nem használunk, hacsak nincs feltétlenül szükség a plusz jogosultságokra!
Keress valami PHP-MySQL tutorialt, ami leírja, hogyan kell megcsinálni az ilyen dolgokat!