twigg
twigg

Reputation: 3993

PHP PDO update prepared statement

I'm trying to update my database with the following query:

$sth = "UPDATE rpacks SET rpacks_location VALUES (:location) WHERE rpacks_id = (:id)";
$q = $conn->prepare($sth);
$q->execute(array(':location'=>$location, ':id'=>$id));

But I'm getting this error

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VALUES ('test') WHERE rpacks_id = ('2')' at line 1' in

Upvotes: 2

Views: 25043

Answers (2)

Fabio
Fabio

Reputation: 23490

There is a mistake in your update query because you used insert query syntax.

Here is the correct query:

$sql = "UPDATE rpacks SET rpacks_location = :location WHERE rpacks_id = :id";
$stmt = $conn->prepare($sql);
$stmt->execute([':location'=>$location, ':id'=>$id]);

Reference: http://dev.mysql.com/doc/refman/5.0/en/update.html

Upvotes: 11

Nerdwood
Nerdwood

Reputation: 4022

Change to:

$sth = "UPDATE rpacks SET rpacks_location = :location WHERE rpacks_id = :id";

Upvotes: 3

Related Questions