「CONCAT」タグアーカイブ

PHP内のSQL文で文字列と変数を連結

データーベースに「商品1」から「商品10」までの値を一気に追加したかったので、PHPのfor文を使って操作しようと思ったが、一時間ほどエラーと戦うことになった。 以下が完成したコード
<?php

for($i=1; $i<=10; $i++){
  mysql_query("INSERT INTO my_items SET item_name=CONCAT('商品', $i)");
}

まず、ダブルクォテーションじゃないと変数を展開できないので、mysql_queryの引数はダブルクォテーションで囲まないといけない。 ウチは、ここをシングルクォテーションで囲んでしまったので、「Unknown column ‘$i’ in ‘field list’」というエラーが出た。

次に、「商品」という文字列と変数「$i」を連結しないといけない。 MySQLで文字列を連結させるには、CONCAT関数を使わないといけないらしい。
CONCAT(‘文字列1’, ‘文字列2’)
ウチは、それを知らず、PHPの連結と同じ調子で.(ピリオド)を使ってしまいエラー。 とりあえず解決したものの、一行ずつ挿入した方が早かった。 でも、こういうエラーを解決していくことが上達していくカギなのかなとも思ったり(;´д`)トホホ…