Beste allemaal,


ik heb een pdo functie gemaakt en dat werkt allemaal.
Nu lukt het me alleen niet om hem te escape kan iemand mijn hier bij helpen?

<?php
public function insertData($table = null, array $data) {
if ($table === null || empty($data)) {
return false;
}
$fields = implode(',', array_keys($data));
$values = implode(',', array_map(array($this, 'quoteValue'), array_values($data)));
$query = 'INSERT INTO ' . $table . '(' . $fields . ')' . ' VALUES (' . $values . ')';

$stmt = $this->_conn->prepare($query);
$stmt->execute($data);

// print_r($stmt->errorInfo());
// print_r($query."<br/>");

$this->insertID = $this->_conn->lastInsertId();

return $this->insertID;
}
?>

je wilt de values escapen terwijl je bezig bent met een prepared statement, dat gaat niet werken ;-) even de [google]beginners handleiding PDO[/google] nalezen, dan zie je de verschillen!
Ik heb hem nu verbeterd maar dan escapte hij helaas nog niet.
<?php
public function insertData($table = null, array $data) {
if ($table === null || empty($data)) {
return false;
}
$fields = implode(',', array_keys($data));
$values = ':' . implode(', :', array_keys($data));

$stmt = $this->_conn->prepare("INSERT INTO " . $table . " (" . $fields . ") VALUES (" . $values . ")");

foreach ($data as $key => $value) {
$stmt->bindValue(":$key", $value);
}

print_r($stmt->errorInfo());

$stmt->execute();

$this->insertID = $this->_conn->lastInsertId();

return $this->insertID;
}
?>

Reageren