Reputation: 1
I can't get bindValue to bind my values to the sql query.
$sql = "INSERT INTO :table(:columns) VALUES(:values)";
$query = $conn->prepare($sql);
$query->bindValue(':table',$table);
$query->bindValue(':columns',$columns);
$query->bindValue(':values',$values);
$query->execute();
When I run this, $query->execute() returns "false" and the data isn't update to the DB. I've also tried:
$sql = "INSERT INTO :table(:columns) VALUES(:values)";
$query = $conn->prepare($sql);
$query->execute(array('table'=>$table,':columns'=>$columns,':values'=>$values));
and it still doesn't work.
This works but isn't what I want to do:
$sql = "INSERT INTO $table($columns) VALUES($values)";
$result = $conn->query($sql);
Please tell me what I'm doing wrong. Thanks.
Upvotes: 0
Views: 309
Reputation: 18853
You are using it incorrectly, you cannot dynamically assign structural SQL values etc via the bindParam
as it is meant for column values being inserted in / updated / tested against.
UPDATE
If you provide us with what the $columns
and $variables
(as Col. Shrapnel asked in the comments) contents generally are / where they come from, I / we maybe able to help you with a work around to your predicament.
Upvotes: 2