Z uwagi na dużą liczbę wpisów stworzonych bez wątpienia wyłącznie w celu pozycjonowania stron na określone frazy, dodaliśmy do wszystkich linków (w postach i podpisach) atrybut rel="nofollow". Z tego względu wszystkie dodane linki straciły swoją moc pozycjonerską. Forum jest dla Was, dlatego prosimy o zamieszczanie wyłącznie "prawdziwych" tematów i odpowiedzi.

[PDO][OOP] Zapytanie SELECT z parametrem

asp.NET, PHP oraz bazy danych
  • Wiadomości
Offline
Awatar użytkownika

moli

  • Posty: 73
  • Rejestracja: 31 paź 2012, o 09:50

[PDO][OOP] Zapytanie SELECT z parametrem

Post4 kwie 2017, o 05:54

:( Na wstępie witam wszystkich bardzo serdecznie!

Jestem początkujący jeśli chodzi o obiektówkę, dlatego też proszę o wyrozumiałość...
Mój problem polega na zapytaniu select z parametrem... Oczywiście wiem, że nie nie powinno tak wyglądać, ale próbuje już wszystkiego..

Zapytanie SELECT powinno wyglądać tak:

Kod: Zaznacz cały

$sql = 'SELECT * FROM nazwa_tabeli';
$result = $pdo->query(sql);



Tyle wiem, ale co jeżeli chcę wprowadzić do niej parametr i nie wpisywać go bezpośrednio gdyż istnieje zagrożenie SQL Injection... ale już naprawdę nie mam na to pomysłu.. może Wy mi w tym pomożecie..
Wymyśliłem sobie oto taki zapis (konkretnie chodzi o metodę checkIfIsset()):

Kod: Zaznacz cały
$sql = 'SELECT nrComp FROM 08925902_k1.employers WHERE nrComp = :nrComp';
$s = $pdo->prepare($sql);
$s->bindValue(':nrComp', $this->nrComp);
$s->execute();      
$this->employers = count($s);


Jak widać nie działa... bardzo Was proszę o pomoc...

Oto cały kod klasy:

Kod: Zaznacz cały
<?php

class RegisterEmployer{
   public $nrComp;
   public $firstName;
   public $lastName;
   public $password;
   public $employers;

   public function __construct($nrComp, $firstName, $lastName, $password){
      $this->nrComp       = $nrComp;
      $this->firstName    = $firstName;
      $this->lastName    = $lastName;
      $this->password    = $password;
   }

   public function wypiszDane(){
      echo '<p class="bg-info">'
      .$this->nrComp.'<br>'   
      .$this->firstName.'<br>'   
      .$this->lastName.'<br>'   
      .$this->password.   
      '</p>';
   }

   public function registerEmployer(){
      
      self::checkIfIsset();
               
                if($this->employers > 0){
              echo '<p class="bg-warning">Taki numer komputerowy już istnieje w bazie danych.</p>';
          exit();
       }else{
          try {
             include 'inc/database.php';
             $sql = 'INSERT INTO 08925902.employers SET
                nrComp = :nrComp,
                firstName = :firstName,
                lastName = :lastName,
                password = :password
             ';
             $s = $pdo->prepare($sql);
             $s->bindValue(':nrComp', $this->nrComp);
             $s->bindValue(':firstName', $this->firstName);
             $s->bindValue(':lastName', $this->lastName);
             $s->bindValue(':password', SHA1($this->password));
             $s->execute();
          } catch (PDOException $e) {
             echo '<p class="bg-warning">'.$e->getMessage() .'<br>'.$e->getLine().'</p>';
             exit();
          }
          echo '<p class="bg-success">Dodano użytkownika do bazy danych.</p>';
       }

   }

   public function checkIfIsset(){
      try {
         include 'inc/database.php';
         $sql = 'SELECT nrComp FROM 08925902.employers WHERE nrComp = :nrComp';
         $s = $pdo->prepare($sql);
         $s->bindValue(':nrComp', $this->nrComp);
         $s->execute();      
         $this->employers = count($s);
      } catch (PDOException $e) {
         echo '<p class="bg-warning">'.$e->getMessage() .'<br>'.$e->getLine().'</p>';
         exit();
      }
      
   }
}

 ?>


kod uruchomienia:

Kod: Zaznacz cały
<?php
if(isset($_POST['addEmployer'])){
   echo '<p class="bg-info">Przejdź do procedury dodawania pracownika.</p>';

   $employer = new RegisterEmployer($_POST['nrComp'], $_POST['employerFirstName'], $_POST['employerLastName'], $_POST['employerPass']);
   $employer->registerEmployer();
}else{
   include 'sites/form_registerEmployer.php';
   exit();
}


?>

Wróć do Server side

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość

cron