ugrás a tartalomhoz

MySQL adatbázis feltöltése PHP-n keresztül

Sovereign · 2006. Dec. 4. (H), 08.26

<?php
include('fuggvenyek.php');
session_start();

$h = 'localhost';
$u = 'x';
$p = 'y';
$a = 'z';

//$vnev      = $_SESSION['v_nev'];
//$knev      = $_SESSION['k_nev'];
//$varos     = $_SESSION['varos'];
//$cim       = $_SESSION['cim'];
//$iranyszam = $_SESSION['irany_szam'];
//$user      = $_SESSION['felhasznalo'];
//$password  = $_SESSION['jelszo01'];
//$email     = $_SESSION['email'];

$vnev      = 'nev';
$knev      = 'kernev';
$varos     = 'barcika';
$cim       = 'cím';
$iranyszam = '8746';
$user      = 'sovereign';
$password  = 'jelszo';
$email     = 'email';

foreach($_SESSION as $k=>$v)
  {
    print $k.' '.$v.'<br>';
  }

$q = "INSERT INTO `members` ( `memid` , `vez_nev` , `ker_nev` , `varos` , `lakcim` , `iranyszam` , `email` )
      VALUES ('', '$vnev','$knev','$varos', '$cim','$iranyszam','$email')";
      
upload($h,$u,$p,$a,$q);

$q = "INSERT INTO `user` ( `userid` , `login` , `password`)
      VALUES ('','$user','$password')";
      
upload($h,$u,$p,$a,$q);

//$_SESSION = array();
header("Location: access.php");
?>
A függvény:

<?php
function upload($host, $user, $pass, $db, $query)
{
   $kapcsolat = mysqli_connect($host,$user,$pass)
                or die ('Hiba!'.mysqli_error($kapcsolat));

   mysqli_select_db($kapcsolat,$db) or die ('Hiba'.mysqli_error($kapcsolat));

   $eredmeny = mysqli_query($kapcsolat,$query);

   mysqli_close($kapcsolat);
   
   return($eredmeny);
}
A problémám az lenne, hogy fenn leírt kód hibát az ég adta világon nem jelez de az adatbázisba egyetlen dolgot nem ír be. Mi lehet a probléma???
 
1

Nem JELEZ?

Anonymous · 2006. Dec. 4. (H), 10.27
Es miert nem iratod ki a fuggveny visszatereset? Hogy tudd, hogy egyaltalan lefut-e vegig a script...
2

válasz

Sovereign · 2006. Dec. 4. (H), 17.18
Megnéztem. Semmit nem ír ki. Ha vki tudja, hogy miért kérem segítsen!!
3

Biztonsag.

Anonymous · 2006. Dec. 4. (H), 17.33
A szervereken a hibauzenetek kiirasa sokszor tiltva van. Tegyel bele egy rakas echot hogy lasd, meddig fut le.
4

Hiányzik néhány információ

Webappz · 2006. Dec. 5. (K), 11.35
  1. Milyen PHP verziót használsz?
  2. Milyen MySQL verziót használsz?
  3. Hozzáférsz a php.ini-hez?

Csak azért kérdezem, mert a mysqli függvények a PHP5-ben vannak és MySQL 4.1 vagy nagyobb verziójú kell hozzá.
Mielőtt bármilyen bonyolúlt programba is kezdesz érdemes egy info.php-t vagy valami hasonlót készíteni, aminek a tartalma ennyi:

<?php phpinfo(); ?>
Ebből kiderül, hogy milyen beállításokat használ a PHP szerver és az is, hogy honnan veszi a php.ini-t. Itt érdemes megnézned display_errors, log_errors, error_log, error_reporting értékeit.

Másfelől - bár nem tudom, hogy milyen a members és a user táblád sémája -, de az biztos, hogy ha írna is az adatbázisba, akkor is minden rekordod egyforma lenne, leszámítva a memid és userid mezőket.
Ha a header függvényt használod, akkor előtte ne íras ki semmit, mert az is hibát okoz.
Gondolom az upload függvényt többször is fel szeretnéd használni, akkor ez egy kicsit pazarló megoldás lesz, ha minden egyes rekord beszúrásához felépíted és lebontod a kapcsolatot.

Üdv: Webappz
5

válasz

Sovereign · 2006. Dec. 5. (K), 18.09
Megvan a hiba oka. Valamiért csak a mySQL-es aposztrógot fogadja el. A szimpla egyes ' vagy kettes "-t nem. A ferde egyest.
Futtam ott egy kérést kimásoltam a sql-t és a fura ferde aposztróffal már remekül ment.