• ベストアンサー

phpからquery実行

趣味でサーバー構築を楽しんでいます phpからqueryでデータを渡そうとしたところ詰まってしまい、どうにも分からないので質問します //MSSQLQuery// DECLARE @acct varchar(32); SET @acct = 'testname'; INSERT INTO test.dbo.tblInfoA (Number,ID,) SELECT Number,@acct FROM test.dbo.tblinfoB WHERE userId = @acct このクエリをphpフォームからDBに送りたく下記をphpに記述しました */php mssql_query("INSERT INTO test.dbo.tblInfoA (Number,ID) VALUES ('SELECT Number FROM test.dbo.tblinfoB WHERE userId = $login','$login');") エラーメッセージ message: Conversion failed when converting the varchar value 'SELECT Number FROM test.dbo.tblinfoB WHERE userId = name' to data type int. (severity 16) お分かりの方いましたらご返答よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.2

Number列に「SELECT Number FROM test.dbo.tblinfoB WHERE userId = name'」という「文字列」をセットしようとしてエラーになっていますNumber列はintですし、こんな「クエリそのもの」をセットtblInfoAにセットしたいわけではないですよね。 そもそもなぜ同じように書かなかったのでしょうか? (実行したいクエリの方にはVALUES句はないですよね) 普通に考えたら、以下のようになると思いますが。 mssql_query("INSERT INTO test.dbo.tblInfoA (Number,ID) SELECT Number,userId FROM test.dbo.tblinfoB WHERE userId='$login';")

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

> test.dbo.tblInfoA (Number,ID,) IDの後ろのカンマは何? tblInfoAの列IDをIntegerで宣言してませんか? テーブル定義について、見直しが必要かも。

関連するQ&A

専門家に質問してみよう