ChatGPTを使い始めてからもうすぐ1か月ですが、ChatGPTの言うことを信じて、数時間できないことをトライしていたことがあったのでそのことについて書いてみます。
プログラミングするときに使うSQLというサーバーとやり取りするための言語があるのですが、ある日ユーザインプットの条件によって、bindする値を変えたいと思い立ちました。
それも、昇順で取得するか降順で取得するかの部分のクエリなのですが、まあ、プログラミングをやったことのない人とかはわからないかもしれませんが、こんな感じで書きます。
"SELECT * FROM `my_table` ORDER BY `id` DESC"
これのDESCとなっている部分をユーザーが昇順、降順指定するのに従ってASCとかにbindValueできないかなと思って、chatGPTに聞いてみると、できますといってサンプルコードまでくれたので、できるのかと思って、何時間かやり方を変えながらトライしましたが、普通にできませんでした。
マニュアル見たら「その他のクエリのパーツをパラメータにバインドすることはできません。」って書いてあったし。
自分用のプログラムだから、セキュリティとか気にしないで組んでいたのですが、さすがにこれができるとまずいですもんね。
だから、技術的なことはchatGPTに聞くよりもやはりマニュアルを読むべきだし、自分用とは言えどもSQLインジェクションとかセキュリティについては常に考えるようにしないといけないなと思いました。
ただ、「変数名の候補を挙げて」とか何個か提案してもらって自分で吟味するタイプのやつは使えるのでいいと思います!