人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPとSQLに関する質問です。
現在の状況ですが

クエリ
select * form TB where (BARCODE = $bar)

エラー文
Warning: mssql_query() [function.mssql-query]: message: 型 nvarchar から型 numeric への変換エラー。 (severity 16) in ファイルのパスon line 42
というエラーが出ちゃいました。
42行目はデータベースへの接続でクエリを実行してます。

データ型だろうと思いこうしてみました。
select * form TB where (BARCODE = (string)$bar)

エラー文
'2200001111111' の近くに無効な構文があります。 (severity 15) in ファイルのパス on line 42

ためしにwhere文を除いて実行してみたところ、問題なく出力されました。
where文を使い抽出するにはどのように変更すべきでしょうか。
原因を添えてお願いします。

データベース側のBARCODEフィールドはテキスト型です。


●質問者: きあ
●カテゴリ:インターネット ウェブ制作
✍キーワード:BAR MESSAGE MSSQL ON PHP
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● namiheikun
●100ポイント

BARCODEはTEXT型ということなので

select * form TB where (BARCODE = '$bar')

シングルクオートで囲みましょう

◎質問者からの返答

シングルクオートで囲んだらテキストになるのはわかってたのですが

$barというテキストで送られるもんだと思ってました。

無事解決しました。ありがとうございます。


2 ● あすか
●100ポイント

SQL文を以下のようにしてみてください。


"select * form TB where BARCODE = '{$bar}';"
◎質問者からの返答

波カッコが気になり調べてみました。

今回は入れても入れなくても問題ないようですが、ひとつ賢くなりました。

変数を明示するという意味であったようがいいようですね。

解答ありがとうございます。無事解決いたしました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ