Autor Zpráva
Bertram
Profil
Zdravím,

Dvě níže uvedené funkce dělají to samé,je použití PDO opravdu tak krkolomné,nebo jenom nevím jak nato?

Zkoušel jsem hledat,jestli neexistuje něco jako PDO::PARAM_ARRAY ,ale nic jsem nenašel.

PDO:
public function registerUser($data)
{
$sql = "INSERT INTO users (firstname,lastname,username,password,email)
      VALUES (:firstname, :lastname, :username, :password, :email)";

$objStatement = $this->getConn()->prepare($sql);
$objStatement->bindParam(':firstname', $data->firstname, PDO::PARAM_STR);
$objStatement->bindParam(':lastname', $data->lastname, PDO::PARAM_STR);
$objStatement->bindParam(':username', $data->username, PDO::PARAM_STR);
$objStatement->bindParam(':password', $data->password, PDO::PARAM_STR);
$objStatement->bindParam(':email', $data->email, PDO::PARAM_STR);
$objStatement->execute();
}


Dibi:
public function registerUser($data)
    {
      return dibi::query('INSERT INTO [users]', (array) $data);
    }
Tori
Profil
Bertram:
Můžete použít tohle:
$objStatement = $this->getConn()->prepare($sql);
$objStatement->execute(array(':firstname' => $data->firstname, ':lastname' => $data->lastname, ...));
Všechny hodnoty se v tomto případě escapují jako řetězce. Nevím, je-li něco podobného i pro int.
Bertram
Profil
Tori:
Děkuji za radu,rozhodně to zkracuje zápis,ale stále jsem nucen vyjmenovávat jednotlivé sloupce tabulky a jednotlivě jim přiřazovat hodnoty.
Nevíte jestli je možné něco jako v Dibi a předat pouze pole,kde klíče budou korespondovat s názvy sloupců v tabulce?

Snažím se pochopit,kde je ta pravá síla PDO a stále mi to nějak uniká.
Lamicz
Profil
Tam je druhá možnost používat otazníky místo názvů

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0