julienhaversano
julienhaversano

Reputation: 446

SQLState error when binding parameters

Today I got an unusual response when trying to make a few queries, here is the error output.

[17-Feb-2014 12:37:24 America/Denver] PHP Warning:  PDOStatement::execute():
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 'key = 'AH3D'' at line 1 in file on line 28

Here is the code I was using, this is how i've always done it.

public function get($key = null) {
    $get = $this->conn->prepare("SELECT url FROM urls WHERE key = :get");
    $get->execute(array(':get' => $key));
    return $get->fetch();
}

How I call the function.

echo $tiny->get($_GET['key']);

Upvotes: 0

Views: 36

Answers (1)

M Khalid Junaid
M Khalid Junaid

Reputation: 64496

Key is a mysql reserved keyword you need to use back-ticks arround your columns name key

$get = $this->conn->prepare("SELECT url FROM urls WHERE `key` = :get");

Mysql Reserved Words

Upvotes: 1

Related Questions