前提・実現したいこと
MySQL 5.7.26
PHP 7.3
テーブル名:syohin_data
id name tanka
1 りんご 300
2 ばなな 400
上記テーブルをPHPで更新したいのですが、実行時にエラーが出てしまいます。
SQL Server 2014で実行した場合,問題なく更新されるのですが、MySQLで実行するとエラーになってしまいます。update文を1つにした場合は問題なく更新されたので、2つある場合にエラーになるのは確認しました。MySQLではこのような形で更新するのは不可能なのでしょうか?
ご教授お願いいたします。
発生している問題・エラーメッセージ
Fatal error: Uncaught PDOException: 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 'UPDATE SYOHIN_DATA1 SET TANKA1 = 600 WHERE ID = 2' at line 1 in
該当のソースコード
<?php $sql = 'UPDATE SYOHIN_DATA1 SET TANKA1 = 500 WHERE ID = 1;UPDATE SYOHIN_DATA1 SET TANKA1 = 600 WHERE ID = 2'; // DB接続情報 $user = 'ユーザー名'; $pass = 'パスワード'; $dbnm = 'DB名'; $host = 'ホスト名'; // 接続先DBリンク $dsn = "mysql:host={$host};dbname={$dbnm}"; // DB接続 try { $conn = new PDO($dsn, $user, $pass, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8')); $conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (Exception $e) { echo "<p>DB接続エラー</p>"; echo $e->getMessage(); exit(); } //実行 $result = $conn->query($sql); if( $result === false ) { echo mysql_errno($result) . ": " . mysql_error($result). "\n"; } //接続クローズ $result =null; $conn = null; ?>
回答2件
あなたの回答
tips
プレビュー