问题
I'm new in PDO
$sFields = "'".implode("', '", $fields)."'";
$sColumns = implode(", ", $columns);
$sql = "INSERT INTO $table ($sColumns) VALUES ($sFields)";
What is the shortest way to use PDO::quote on each value I want to insert.
I tried
$fields = array_map('$bdd->quote', $fields);
but it returns:
Warning: array_map() expects parameter 1 to be a valid callback, function '$bdd->quote' not found or invalid function name
回答1:
There is other way than concat sql string.
$sColumns = implode(", ", $columns);
$sFields = implode(',', array_fill(0, count($fields), '?'));
$sql = "INSERT INTO $table ($sColumns) VALUES ($sFields)";
$stmt = $pdo->prepare($sql);
$stmt->execute($fields);
回答2:
Try
$fields = array_map(array($bdd, 'quote'), $fields);
来源:https://stackoverflow.com/questions/11999343/pdo-use-quote-with-an-array