__LINE__のプロフィール

@__LINE__ __LINE__
ありがとう数16
質問数18
回答数3
ベストアンサー数
1
ベストアンサー率
100%
お礼率
61%

  • 登録日2007/07/29
  • SQLへファイルを格納

    PHP+MySQL(接続にはDB.phpを利用)を利用してフォームからファイルを アップしてそれをDBに格納するプログラムを組んでいるのですが データベースの構造は CREATE TABLE `test` ( `id` int(11) NOT NULL auto_increment, `filedata` longblob, `kaku` text collate utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=4 ; 下記がそのプログラムの処理部分です。 $data = file_get_contents($_FILES['upfile']['tmp_name']); $sql ="INSERT INTO test(filedata,kaku) VALUES('$data','$kaku')"; $DbObj->DBSQL($sql); ・$DbObj DB.phpを利用してのデータベース接続オブジェクト(クラス)で クラスの中身は商用のWebアプリの開発用のため掲示できませんが この処理以外は正常に動いています。 $sql ="INSERT INTO test(filedata,kaku) VALUES('11','$kaku')"; では正常動作確認しています。 ・$kaku ファイルの拡張子を格納している(拡張子はファイルを取りだ時に利用) 主キーはauto_incrementを利用しているのでINSERT文で設定の必要なし。 って状況で実行をすると DB Error: syntax error とエラーをはき処理できません。 どのようにしたらデータベースに格納できのでしょうか?

    • ベストアンサー
    • PHP
  • jspでMysql検索で困っています。

    jspでMysql検索で困っています、 コマンド画面で下記の入力をすると条件の検索が出来ます。 select * from kanagawa where fish like '%コイ%'; (8件中検索されるのは1件でそれが表示されます) jspで命令すると、違う結果が返されてきます。 String sql; sql="select * from kanagawa where fish like '%コイ%'"; ResultSet rs=db.executeQuery(sql); 最初は変数でテーブル名等受け取っていたのですがうまくいかなかったので直接検索文を入れたのですが結果は同じく違う物が検索されてしまいます。(fishのフィールド8件中5件が結果としてでます。) 何を調べても間違いなさそうですが・・ どうにもならず困っています、助けてください、お願いします。

  • メール本文やBBS投稿文の指定文字幅での自動改行

    いつもお世話になっています^^ えっと、やりたいことは、日本語と英語を含む文字列を 指定文字幅で改行したいです。 例えば ---------------------- I'm going to use e-mail to keep in touch with my friends in New Zealand. 私はニュージーランドにいる友人達と疎遠にならないように、電子[mail]利用するつもりです ---------------------- を既に入っている改行は有効のままでオーバーするものを切断するものが欲しいです。 ---------------------- I'm going to use e-mai l to keep in touch wit h my friends in New Ze aland. 私はニュージーランドに いる友人達と疎遠になら ないように、電子[mail] を利用するつもりです. ---------------------- みたいな感じにしたいのですが 2バイト文字?と1バイト文字が混ざってるとなんか? 大変な感じです。 いろいろネットでは探してみたのですが [文字化け] http://www.cubeworks.co.jp/article/index.php?/archives/2-unknown.html なんてのも使ってみましたが、 日本語と英語が混ざっていると改行近辺で文字化けを起こしてしまった。 しょうがないので自分でなにか作ってみようとおもって、自分なりにつくってみました。 ----作った関数------ function str_splits($text,$long,$br="\n",$encode="Shift_JIS"){ $data=explode("\n",$text); foreach($data as $val){ $nagasa=mb_strwidth($val); if($nagasa>$long){ $new[0]=mb_strcut($val,0,$long,Shift_JIS); $new[1]=mb_strcut($val,$long+1,150,Shift_JIS); $val=implode($br,$new); } $last[]=$val; } $mystr=implode("\n",$last); return $mystr; } ------------------- なにが問題かというと 例えば10バイト(半角10文字で分割)で分割すると -------------------------- 123456789山田さん -------------------------- を上の関数で分割すると -------------------------- 123456789 田さん -------------------------- みたいになって「山」の字が消えてしまいます。 この山を消えないようにするには10-11バイトが日本語文字の時は 10バイトから-20バイトで分けないといけないというの思います。 しかし、具体的にどのようにすればスマートにそれができるのかが思いつきません。 是非、ご教授いただければ幸いです。 よろしくお願いいたします。 同様な機能を持つような関数が絶対ニーズがないとは思えないので (でも探したのですが、なぜか無かったです)、そういうソースを公開されているサイトをご存知であれば是非教えていただきたいです。

    • 締切済み
    • PHP
    • widoww
    • 回答数2