Miért nem írja bele a mysql-be?
Itt a kódom, de sajnos nem ír semmit se az adatbázisba? Mi lehet a hiba?
<html>
<head>
</head>
<body>
Neved: <br>
<form method="POST">
<input type="text" name="nev">
<input type="text" name="tulajdonsag">
<br>
<input type="submit" value="Küldd">
</form>
</body>
<html>
<?php
$kapcsolat = mysql_connect("localhost","felhasznalonev","jelszo");
mysql_select_db(proba, $kapcsolat);
mysql_query("INSERT INTO proba (nev, tulajdonsag) VALUES ('".$_POST['nev']."', '".$_POST['tulajdonsag']."')");
print "kész";
?>
Első blikkre talán idézőjel kellene a mysql_select_db(proba, $kapcsolat); részben a proba köré.
És ha jól tudom, a <form> elem kötelező attribútuma az action, azaz hogy hova küldje a post az adatokat, még akkor is, ha saját magának küldi. Tedd be ezt a php rész elejére:
echo "<pre>" . print_r ( $_POST, true ) . "</pre>";
Ha nem ír ki semmit, nem működik a form.
rosszul írtam :D, így próbáld meg:
mysql_query("INSERT INTO proba (nev, tulajdonsag) VALUES ($_POST[nev], $_POST[tulajdonsag])");
Csak egy megjegyzés:
Nem ártana egy hibakezelőt is beépíteni a kódba.
$res=mysql_query($qry,$link);
if (!$res) { die('nem sikerült a lekérdezés:'.mysql_error($link).' '.mysql_errno($link).'<br>'.$qry);}
Tanulj meg hibát keresni, fontos dolog.
Elöszőr írd ki, hogy megkapja e egyáltalán a PHP a változókat (var_dump($_POST)), utána ha megkapja de nem menti el, akkor a mysql_query() tartalmát írd ki (echo "INSERT INTO .."), majd ezt írd be egy phpmyadmin SQL lekérdezésébe, és az kidobja, ha hiba van a lekérdezésben.
Bár már kicsit off, de az én tippem hibák esetére:
$sql = "SELECT foo FROM bar;";
$res = MySQL_query ( $sql ) or die ("Can not collect foo [" . __LINE__ . "].<br />" . $sql . "<br />" . MySQL_errno( $dbConn ) . " - " . MySQL_error( $dbConn ));
...és ezután már nem kell "if ( $res ){...}", mert a kód úgysem fut tovább, ha hiba történt az adatok lekérésénél.
A __LINE__ kiírja, hogy a kód hányadik sorában keresd a hibát. Nagyon hasznos száz meg ezer soros scripteknél.
Ha érzékeny infóval dolgozol, ne ekhózd ki a $sql tartalmát, hogy a rosszak ne ismerjék meg az adatbázisod szerkezetét.
Durvább helyzetekben, ha elérhető (ha nem pont az elérés a hiba) MySQL-be íratom a hibakódot, a $sql-t, a felhasználó IP-címét és még jó pár dolgot, hogy később visszakereshető és orvosolható legyen a probléma.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!