Kezdőoldal » Számítástechnika » Programozás » Miért nem írja bele a mysql-be?

Miért nem írja bele a mysql-be?

Figyelt kérdés

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";

?>


2012. jan. 21. 21:24
1 2
 1/11 anonim ***** válasza:

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.

2012. jan. 22. 00:04
Hasznos számodra ez a válasz?
 2/11 anonim ***** válasza:
mysql_query("INSERT INTO proba (nev, tulajdonsag) VALUES ("$_POST[nev]", "$_POST[tulajdonsag]")");
2012. jan. 22. 00:17
Hasznos számodra ez a válasz?
 3/11 anonim ***** válasza:

rosszul írtam :D, így próbáld meg:


mysql_query("INSERT INTO proba (nev, tulajdonsag) VALUES ($_POST[nev], $_POST[tulajdonsag])");

2012. jan. 22. 00:34
Hasznos számodra ez a válasz?
 4/11 A kérdező kommentje:
Köszönöm a válaszokat, ahogy tudom kipróbálom.
2012. jan. 22. 08:46
 5/11 anonim ***** válasza:

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);}

2012. jan. 22. 10:59
Hasznos számodra ez a válasz?
 6/11 anonim ***** válasza:
Előző vagyok. A leírt kód hiba esetén kiírja a hibakódot és a hibaüzenetet + az sql parancsot..
2012. jan. 22. 11:01
Hasznos számodra ez a válasz?
 7/11 A kérdező kommentje:
Nekem nem ír ki semmilyen hibát. Ha pl. egy pontosvesszo hiányzik, akkor is csak azt írja ki, hogy nem elérheto.
2012. jan. 22. 14:29
 8/11 A kérdező kommentje:
Jajj bocs. Előbb telefonról voltam és nem vettem észre előző üzeneted.
2012. jan. 22. 15:03
 9/11 krw válasza:

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.

2012. jan. 23. 00:08
Hasznos számodra ez a válasz?
 10/11 anonim ***** válasza:

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.

2012. jan. 23. 21:25
Hasznos számodra ez a válasz?
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!