#PDOでのレコードの存在の有無のチェック
####条件分岐の記載方法がわかりません
PDOでMySQLを操作しています。レコードの存在の有無をチェックして、存在すれば当該レコードの一部カラムを更新する記述を作成したいと思っております。
調べたところによると、方法は大まかに2通り、①select countを用いる方法と②select existsを用いる方法とがあることはわかりました。
①SELECT COUNT(*) FROM テーブル名 WHERE カラム名 = '条件'
②SELECT EXISTS(SELECT * FROM テーブル名 WHERE カラム名 = '条件')
レコード数が多くなると①は処理速度が遅くなるという意見もあるため、②で以下のように記載しました。
idが存在するかしないかで条件分岐したいですが、記載方法がわかりませんのでご教授いただけないでしょうか。
テーブル上、idは1〜7までは存在していて8はないため、以下の記載ではfalseと返ってくるのではと思っています。
PDO
1$dsn = 'mysql:host=localhost; dbname=xxxxxx; charset=utf8'; 2 13 ^ ^ $user = 'aaa'; 3 14 ^ ^ $pw = 'bbb'; 4 15 ^ ^ try { 5 16 ^ ^ ^ $dbh = new PDO($dsn, $user, $pw); 6 17 ^ ^ ^ $sql = "select exists (select * from users where id = 8)"; 7 18 ^ ^ ^ $sql_execution = $dbh->query($sql); 8 19 ^ ^ ^ $db_data = $sql_execution->fetchall(PDO::FETCH_ASSOC); 9 22 ^ ^ } catch (PDOException $e) { 10 23 ^ ^ ^ $result = $e->getMessage(); 11 24 ^ ^ }
回答2件
あなたの回答
tips
プレビュー