• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zapytanie mysql nie dodaje nic do bazy

0 głosów
457 wizyt
pytanie zadane 29 listopada 2015 w PHP przez Widemo Użytkownik (920 p.)
zmienione kategorie 29 listopada 2015 przez Arkadiusz Waluk

Mam taki problem. Nie dziala mi zapytanie do bazy mysql a dokladnie $db -> Exec(INSERT INTO.....)

Ponizej wklejam kod 

register.php

<?php

  require "head.php";
  require "db.php";

  if (empty($_POST['name']) || empty($_POST['lastname']) || empty($_POST['login']) || empty($_POST['pass']) || empty($_POST['passrep']) || empty($_POST['email'])) {
    header("Location: register_form.php?error=0");
    exit;
  }
  $name = $_POST["name"];
  $lastname = $_POST["lastname"];
  $login = $_POST["login"];
  $pass = md5($_POST["pass"]);
  $passrep = md5($_POST["passrep"]);
  $email = $_POST["email"];
  $sex = $_POST["sex"];

  if ($pass != $passrep) {
    header("Location: register_form.php?error=1");
    exit;
  }


  $answer = $db -> Query('SELECT `login` FROM `users` WHERE `login`="' . $login . '"');
  $answer = $answer -> fetchAll();
  
  if(!empty($answer)) {
    header("Location: register_form.php?error=2");
    exit;
   }
    
  $answer = $db -> Query('SELECT `email` FROM `users` WHERE `email`="' . $email . '"');
  $answer = $answer -> fetchAll();
  
  if(!empty($answer)) {
    header("Location: register_form.php?error=3");
    exit;
   }

    $db -> Exec('INSERT INTO `users` VALUES ("", "' . $name . '", "' . $lastname . '", "' . $login . '", "' . $pass . '", "' . $email . '", "' . $sex . '"');
    exit;
  
  echo "$name<br/> $lastname<br/> $login<br/> $pass<br/> $email<br/> $sex<br/>";
  

?>

Połączenie z bazą

<?php 
session_start();
require("head.php");
$db = new PDO("mysql:host=mysql.hostinger.pl;dbname=dbname", "user", "password");

 

komentarz 14 sierpnia 2016 przez xandros Nałogowiec (29,420 p.)

Użyj bindowania parametrów, jak to napisał Abel. `md5` to słabe hashowanie haseł. Tego powinieneś używać:

http://php.net/manual/pl/function.password-hash.php

http://php.net/manual/pl/function.password-verify.php

2 odpowiedzi

0 głosów
odpowiedź 29 listopada 2015 przez R[a]=d(ek); Mądrala (6,370 p.)
edycja 29 listopada 2015 przez R[a]=d(ek);
Hmm a sprobuj moze uzyc zwyklego $db->Query("INSERT INTO..... "); ?

edit::

Tylko nastepnym razem postaraj sie wybrac odpowiedni dzial zadajac jakies pytanie okej? ;)
komentarz 29 listopada 2015 przez criss Mędrzec (172,570 p.)
Dokladnie, wrzucanie wszystkiego pod C i C++ to ostatnio jakaś plaga. Tylko wczoraj przycisk "zgłoś" wcisnąłem kilka razy; dzisiaj pierwszy raz, ale tylko dlatego, że na forum jestem od kilku minut ;_; Ludzie, ogarnijcie sie.
0 głosów
odpowiedź 14 sierpnia 2016 przez Abel Mądrala (5,140 p.)
edycja 14 sierpnia 2016 przez Abel

Nie jestem jakiś wybitny specjalista , dopiero się uczę smiley

Niemniej wydaje mi się że masz błąd  

$answer = $db -> Query('SELECT `login` FROM `users` WHERE `login`="' . $login . '"');
  $answer = $answer -> fetchAll();
   
  if(!empty($answer)) {
    header("Location: register_form.php?error=2");
    exit;
   }

 

powinno moim zdaniem wyglądać tak 

$answer = $db -> Query('SELECT `login` FROM `users` WHERE `login`="' . $login . '"');
  $row = $answer -> fetchAll();
   
  if(!empty($row)) {
    header("Location: register_form.php?error=2");
    exit;
   }

 

INSERT ja robie w ten sposób

$zapytanie = $polaczenie->prepare("INSERT INTO maile (mail_id, tytul, tresc, nadawca, odbiorca, stan, data_nadania)
		VALUES (0, :tytul, :tresc, :nadawca, :odbiorca, :stan, Now())");
		
		
		$zapytanie->bindParam(':tytul' , $temat, PDO::PARAM_STR);
		$zapytanie->bindParam(':tresc' , $tresc, PDO::PARAM_STR);
		$zapytanie->bindParam(':nadawca' , $nadawca, PDO::PARAM_STR);
		$zapytanie->bindParam(':odbiorca' , $odbiorca, PDO::PARAM_STR);
		$zapytanie->bindParam(':stan' , $nowa, PDO::PARAM_STR);
               if($zapytanie->execute())
		{
		echo "treść komunikatu  ";
		}
}
	catch(PDOException $e)
		{
		echo $zapytanie . "<br>" . $e->getMessage();
		}
	$polaczenie = null;

I wszystko działa jak należy 

Podobne pytania

–2 głosów
1 odpowiedź 466 wizyt
pytanie zadane 30 czerwca 2016 w PHP przez Kacper Duda Obywatel (1,970 p.)
0 głosów
2 odpowiedzi 1,925 wizyt
0 głosów
2 odpowiedzi 516 wizyt
pytanie zadane 3 maja 2021 w PHP przez Darek_ppp Początkujący (400 p.)

93,772 zapytań

142,731 odpowiedzi

323,383 komentarzy

63,375 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...