以下のSQL文でUPDATEをかけたいのですが、
エラーが出力されてうまくいきません。
データベース接続失敗。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 'table SET status = :stat WHERE tdname = :td' at line 1
基本的なコードの例示にあるように記載しているのですがどこに問題があるのかアドバイスをいただけると嬉しいです。
よろしくお願い申し上げます。
SQL
1$dsn ='mysql:dbname=hogehoge;host=fugafuga'; 2 $user="barbar"; 3 $pass="piyopiyo"; 4 $pdo = new PDO($dsn,$user,$pass, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET CHARACTER SET `utf8`')); 5 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 6 7 try{ 8 $pdo->beginTransaction(); 9 try{ 10 $sql = "UPDATE tableA SET status = :stat WHERE tdname = :td"; 11 $stmt =$pdo->query($sql); 12 $params = array(':stat' => 'YES', ':td' => 'egg_0'); 13 $stmt->execute($params); 14 15 $pdo->commit(); 16 }catch(PDOException $e){ 17 $pdo->rollback(); 18 throw $e; 19 } 20 }catch(PDOException $e){ 21 exit('データベース接続失敗。'.$e->getMessage()); 22 } 23 24}
<追記>
tableは予約語とのご指摘を受けて、tableAに変更したのですが、
以下の通り、エラーが引き続き出力されております。
データベース接続失敗。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 ':stat WHERE tdname = :td' at line 1
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/21 20:48