Zdravím,
snažím se si ulehčit práci malou funkcí, do které zadám SQL dotaz který v funkci zpracuji pomocí pdo prepare 'funkce' (většinou s nějakými předdefinovanými místo pro 'vložení' variablu [:name, :id, atd..]), a parametry, které se pomocí pdo bindParam 'funkce' snažím 'nabindovat' do SQL dotazu.
<?
public function query($sql, $params) {
try {
$request = self::$connection->prepare($sql); // Přístup k databázi je vždy. :-) - V classe
foreach($params as $param_key => $param_value) {
$request->bindParam($param_key, $param_value);
}
$request->execute();
self::close(); // Definováno v classe (ignorujte)
return true;
} catch (PDOException $error) {
die("Nastala chyba v dotazu: ".$error->getMessage());
}
}
A funkci volám tímto stylem:
$volana_classa->query("INSERT INTO `users` (`username`, `password`, `email`, `reg_time`, `reg_ip`) VALUES (:user, :pass, :email, :time, :ip)",
array(":user" => $d['user'] /* zkoušl jsem i přímý variable.. místo $d['....'] */, ":pass" => $d['pass'], ":email" => $d['email'], ":time" => $d['reg_time'], ":ip" => $d['reg_ip']));
.. A ta funkce se vlastně i provede, vše se do databáze vloží, ale na všech polích v databázi se místo dle předdefinovaných věci vloží jen IP adresa.. Zkoušel jsem si i všechny data vypsat, což také všechny má zadávaná data vypsalo - a dokonce správně.. Ale v rámci této funkce se tomu jakoby nechtělo.. :|
Budu rád za jakoukoliv radu :)
Díky.