[PHP-users 26630] Re: PHPでMS SQLserver2000のテーブルにデータをかく方法

Shindo shindo @ atsystem.jp
2005年 8月 26日 (金) 12:09:29 JST


進藤です。

>>これで、Parse error: parse error, unexpected '@' in ・・・on line 117 のエ
>                       ↑
>このエラーは、全角の空白が許されない場所に全角の空白があると出たりします。
>$sq の中に全角の空白は無いでしょうか?
>data1 の前後の空白は半角の空白ですか?

これだけだと、意味が解らないかも知れませんので少し補足します。
例えば
 $sq = 'INSERT INTO abc VALUE (1, 2, 3)';
        ↑ここは全角の空白です。

と言う文字列をパーサーがパースした場合、この全角空白がSHIFT_JIS だったと
すると16進で表現すると

0x49 0x4E 0x53 0x45 0x52 0x54 0x40 0x81 0x49 0x4E 0x54 0x4F 0x20 ....
I    N    S    E    R    T    全角空白  I    N    T    O    半角空白

といったコード並びになります。
左から見ていくと全角空白の位置は 0x40 ですから ASCII では @ を
表す文字コードになります。その後にASCIIには存在しない 0x81 が現れるので
パースエラーが発生します。
パーサーは、理解できた最後の文字'@'をエラー文に含めて終了します。

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
 進藤寿則@アットシステム   _/_/
 e-mail shindo@atsystem.jp     _/



PHP-users メーリングリストの案内