PHPデータをMYSQLに格納
こちらのmysqlのフィールドが
1. CREATE TABLE `temp_upload` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(255) NOT NULL default '',`mime` varchar(255) NOT NULL default '',`image` longblob NOT NULL,
`created` timestamp(14) NOT NULL, PRIMARY KEY (`id`))
の場合では下記のコードを入力してBLOBに画像の格納が出来ました。
# // 追加SQL作成
# $sql = sprintf( 'INSERT INTO temp_upload ( name, mime, image ) VALUES ( "%s", "%s", "%s" )',
# mysql_real_escape_string( $_FILES['image']['name'] ),
# mysql_real_escape_string( $_FILES['image']['type'] ),
# mysql_real_escape_string( $image ) );
#
#
# $result = mysql_query( $sql );
#
# header( sprintf( 'Location: %s', $_SERVER['SCRIPT_NAME'] ) );
# exit;
#
# }
ただしもmysqlのフィールド数がもっとある場合はどのように記述をすればいいのでしょうか。
色々と調べ、なんども変更を加えて試してもみたのですがどうしてもmysqlにデータ・画像が格納されません。
こちらがその全然動かないコードになります。
$sql = sprintf( 'INSERT INTO temp_upload (sname, str_check1, sonohoka, train, ken, add1, stime, holiday, denwa, menu1, menu2,url, picname, mime, image ) VALUES ("$sname","$str_check1", "$sonohoka", "$train", "$ken", "$add1", "$stime", "$holiday", "$denwa", "$menu1", "$menu2","$url", "%s", "%s", "%s" )',
mysql_real_escape_string( $_FILES['image']['picname'] ),
mysql_real_escape_string( $_FILES['image']['type'] ),
mysql_real_escape_string( $image ) );
$result = mysql_query( $sql );
header( sprintf( 'Location: %s', $_SERVER['SCRIPT_NAME'] ) );
exit;
}
大変申し訳ないのですが、どなたかお分かりになるかたご教授お願い出来ませんでしょうか?
お礼
早速のご回答ありがとうございます! クオートは特殊文字で\がエスケープ文字なんですね。 \\\'user\\\'にしたら\'user\'で格納されました。 ありがとうございました^^ ちなみに、質問のコードはSQLインジェクション対策にはなっているんでしょうか? 「'user'」はデータとして格納されているという認識でよろしいのでしょうか? ご回答にご質問してしまってすみません。 お返事いただければ幸いです。