PDO (php データ オブジェクト) を使用して、次のように .php ファイルでクエリを実行しようとしています。
global $db, $table;
$sth = $db->prepare('INSERT INTO $table(user, timerun, magexp, crimsons, blues, golds, greens) VALUES (:user,:timerun,:magexp,:crimsons,:blues,:golds,:greens) ON DUPLICATE KEY UPDATE timerun=timerun+:timerun, magexp=magexp+:magexp, crimsons=crimsons+:crimsons, blues=blues+:blues, golds=golds+:golds, greens=greens+green');
$sth->execute(array(':user' => $user, ':timerun' => $timerun, ':magexp' => $magexp, ':crimsons' => $cr, ':blues' => $bl, ':golds' => $go, ':greens' => $gr));
echo "success";
ただし、実際にはテーブルを更新しません。エラーなどは出ません。
何か間違っているのでしょうか、それとも PDO はサポートされていませんか? PDO ドキュメントには、「注意: 一部の MySQL テーブル タイプ (ストレージ エンジン) はトランザクションをサポートしていません。トランザクションをサポートしていないテーブル タイプを使用してトランザクション データベース コードを記述する場合、MySQL はトランザクションが正常に開始されたふりをします。さらに、任意の DDL発行されたクエリは、保留中のトランザクションを暗黙的にコミットします。」
通常の「mysql_query」が機能するため、MySQL テーブルがトランザクションをサポートしていることは確かです。
ありがとう。