ugrás a tartalomhoz

PHP vs MYSQL

Petrusz · 2006. Már. 1. (Sze), 01.29
Szeretném ismételten a segítségeteket kérni,
van egy egy táblás adatbázisom (test)
adatbázis neve Accounts
tábla neve Acc

egy form ról átküldök 2 adatot a feldolgozó php-nak de lefagy
Parse error: parse error in c:\easyphp1-8\www\insert_account.php on line 2

Ha valaki tud tanácsot adni, megköszönöm :)

Péter

HTML:
  1. <html>  
  2. <head>  
  3.     <title>Accounts</title>  
  4. </head>  
  5.   
  6. <body>  
  7. <h1>Accounts / New Account Entry</h1>  
  8. <form action="insert_account.php" method="post">  
  9. <table border=10>  
  10. <tr>  
  11. <td>Számla</td>  
  12. <td><input type="number" name="szamla" maxlength=6 size=13><br></td>  
  13. </tr>  
  14. <tr>  
  15. <td>Megnevezés</td>  
  16. <td><input type="text" name="megnev" maxlength=10 size=13><br></td>  
  17. </tr>  
  18. <tr>  
  19. <td><input type="submit" value="Register"></td>  
  20. </tr>  
  21. </table>  
  22. </form>  
  23.   
  24. </body>  
  25. </html>  
A PHP:
  1. <?php  
  2. mysql_connect("localhost","root".""or die ("could not connect to localhost");  
  3. mysql_select_db("accounts"or die ("could not be select database");  
  4. $query="insert into acc("$szamla","$megnev")";  
  5. $result=mysql_query($query);  
  6. mysql_query($query);  
  7. if($result)  
  8. echo mysql_affected_rows()."account insert into database.";  
  9. ?>  
 
1

Vessző helyett pont

winston · 2006. Már. 1. (Sze), 01.40
így első nekifutásra azzal lesz a gond, hogy a mysql_connect-nél "."-al választottad egymással el a paramétereket. Használj Weaverslave-t, vagy valamit az ilyen hibák elkerülésére
2

Apróbb hibák

Török Gábor · 2006. Már. 1. (Sze), 07.43
Ha kijavítod a pontot vesszőre, akkor az 5. sorban is lesz majd hiba, ugyanis az SQL INSERT utasításnak nem ez a szintaktikája, továbbá az idézőjelekkel is gondban vagy.
  1. <?php  
  2. $query="insert into acc("$szamla","$megnev")";  
Helyett:
  1. <?php  
  2. $query = "INSERT INTO acc VALUES ('$szamla', '$megnev');";  
A fenti kód viszont csak abban esetben életképes, ha a register_globals be van kapcsolva. Ezt viszont biztonsági megfontolásból célszerű elkerülni, így a POST-tal küldött adatokat a $_POST tömbön keresztül érheted el PHP-ból. Tehát még helyesebben:
  1. <?php  
  2. $query = "INSERT INTO acc VALUES ('" . $_POST['szamla'] . "''" . $_POST['megnev'] . "');";  
Végül pedig ez egy rendkívül sebezhető kód, hiszen amit a felhasználó begépel, azt te egy az egyben beledobod egy SQL query-be, ami újabb biztonsági kérdéseket vet fel (SQL befecskendezés).
3

Köszönöm

Petrusz · 2006. Már. 1. (Sze), 15.15
Mindkettőtöknek köszönöm a segítségét, már müxik a php. Az igazság az, hogy még csak az alap rutinokkal ismerkedem - de igérem beszerzek egy-két 24 órás könyvet. Aproposz a rossz syntaxokat egy angolnyelvű leírásból szedtem ki ami vagy más verzióra vonatkozik vagy egy alapos hibajavító methodusra :)
"SAMS PHP and MySQL Web Development" ha ismeritek

Péter
4

inm

winston · 2006. Már. 1. (Sze), 17.15
Ha tényleg jót akarsz, ne 24-es könyvet szerezz. Meglehetősen kevés tudásanyag találtatik benne és azok közül is van, ami elavult. Ajánlom Peter Mouldin: PHP Fekete Könyvét és talán még a PHP Fejlesztés felsőfokont. Persze ez így nem lesz elég: olvasgass weben, gyakorolj, stb. Sok sikert.