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:
$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()):
$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:
<?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>'; }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>'; }
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>'; }
}
}
?>
kod uruchomienia:
<?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';
}
?>
Ten post edytował molik 4.04.2017, 02:03:33