- 締切済み
insert into $DB (data1, data2) values (\"$data1\", \"$data2\")で変数扱いされません
$sql = "insert into $DB (data1, data2) values (\"$data1\", \"$data2\") ; PHPにてMySQLを操作していますが、上記のように insertする項目の文字列に数字が入ると insertする際に、data1がそのままdata1として書き込まれてしまいます。 $sata1 = 'text or int'; data1 = $data1; として書き込みたいのですが… アドヴァイスお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- wakame0729
- ベストアンサー率32% (245/765)
回答No.1
これはmysqlの質問というよりも、PHPの文字列における変数の扱いに関する質問という感じですか?要は"$data1"が変数$data1ではなく、"$data1"という文字列になるという事でしょうか。 $sqlの実行直前にprint $sqlというように$sqlの中身がどうなっているのか表示させてみましょう。 PHPでは""の中でも$xxxの形式は変数として扱われて値が代入されます。が、文字列によってはPHPがどこまで変数なのか判断できない場合もあるので、.にて文字列を連結させると確実です。 ちなみにlinuxでテストすると質問のSQLでは正常に$data1,$data2の中身が表示されました。念のためですが、ダブルクォーテーションの数が合っていませんが、これは単なるタイプミスですよね?
お礼
wakame0729さん、どうもありがとうございます。 Dクォーテーションはタイプミスでした。すみません。 この度の問題は、はずかしながら 変数が20個近くあったので、タイプミスをしていただけでした(汗) どうもお騒がせしてすみませんでした。 wakame0729さん、どうもありがとうございました。