Hej, mam problem z zapytaniem, nie mogę sprawić aby przeszło pomyślnie.
Dane wejściowe:
(
[table] => players
(
[0] => name
[1] => password
[2] => email
)
(
[:name] => tester
[:password] => 72a3dcef165d9122a45decf13ae20631
[:email] => test@test.pl
)
)
Oczywiście dane są odpowiednio wrzucane do poniższej funkcji:
function insert($table = "", $fields = [], $data = []){
if($table == ""){
pr("First variable (table) is required and cannot be empty.");
} elseif(count($fields)==0) { pr("Fields are not defined.");
} elseif(count($data)==0) { pr("Data is not defined.");
} else {
$placeholders = [];
foreach($data as $placeholder => $value){
$placeholders[] = $placeholder;
}
$placeholders = implode(",", $placeholders);
$stmt = $this->connection->prepare("INSERT INTO {$table} ({$fields}) VALUES ({$placeholders})");
foreach($data as $placeholder => $value){
$bind = $stmt->bindValue($placeholder, $value);
}
if($stmt->execute()){
return true;
} else {
return false;
}
}
}
Zapytanie które widzę po użyciu "print_r" to:
INSERT INTO players (name,password,email) VALUES (:name,:password,:email)
Zapytanie które powinno się wykonać:
INSERT INTO players (name,password,email) VALUES ("tester", "72a3dcef165d9122a45decf13ae20631", "test@test.pl")
Wprowadziłem zapytanie ręcznie i wszystko działa, błąd jest prawdopodobnie z bindowaniem wartości.
Na funkcję "pr" nie musicie patrzeć, to po prostu print_r otoczony <pre></pre>, używam go do podglądu wartości.
Pozdrawiam,
redirdoolb
Ten post edytował redirdoolb 3.05.2019, 13:38:36