2012-04-10 6 views
0

私のコードをMYSQLからSQLに変更しようとしましたが、エラー(SQL構文 'Limit')がありました。MYSQLからSQLへの更新の制限

私は質問を変更して "TOP"で更新しようとしましたが、SELECTでのみ動作するようです。だから、

、どのように私はこのMYSQLのクエリを変更することができます。ここでは

$fct="UPDATE `users` SET `STREAM_TITRE` = '$STREAM_TITRE',`STREAM_URL` = '$STREAM_URL',`STREAM_DESC` = '$STREAM_DESC',`STREAM_GENRE` = '$STREAM_GENRE' WHERE `ID` =$IDSESS LIMIT 1"; 

は私のSQLコードは制限なしです。

$fct="UPDATE users SET STREAM_TITRE = '$STREAM_TITRE', STREAM_URL = '$STREAM_URL', STREAM_DESC = '$STREAM_DESC', STREAM_GENRE = '$STREAM_GENRE' WHERE ID = '$IDSESS'"; 

おかげ

+0

私はSQL構文「Limit''はあなたの完全である 'ことを疑いますエラー?そして何が問題なの?それは私にはうまくいかないクエリがあり、それがあると思われるので、問題は何ですか? – Nanne

+1

$ fctを出力すると、クエリはどのように見えますか? – Jim

+0

どのバージョンのSQL Serverを使用していますか?私が見たドキュメントでは、TOPとUPDATEを使用できると述べています。単に動作しないのですか、エラーメッセージが表示されますか? –

答えて

5

それはあなたのクエリのバージョンを非常に明確ではありません何がDBMSにあるのか、そしてどのDBMSにあるのか、

IDがcharまたはvarchar型の場合、LIMITバージョンにはいくつかの引用符がありません。 MySQLは非常に好き嫌いではなく、あなたがまたは引用符なし、多くの問題を持っていませんが:

$fct = " 
    UPDATE users 
    SET STREAM_TITRE = '$STREAM_TITRE' 
    , STREAM_URL = '$STREAM_URL' 
    , STREAM_DESC = '$STREAM_DESC' 
    , STREAM_GENRE = '$STREAM_GENRE' 
    WHERE ID = $IDSESS    --<-- this should be '$IDSESS' , right? 
            ----- or $IDSESS , depending on the datatype 
    LIMIT 1 
     "; 

注:MySQLとPostgreSQLのではなく、いくつかの他のDBMSでLIMIT n作品を。さらに、IDがおそらくテーブルの主キーであるため、あなたは本当に必要とは思わないと思います。

はMySQLからSQL-Serverに文を変換しようとしている場合は、バッククォートを使用してTOP (1)LIMIT 1を交換しないでください。

$fct = " 
    UPDATE TOP (1) users 
    SET STREAM_TITRE = '$STREAM_TITRE' 
    , STREAM_URL = '$STREAM_URL' 
    , STREAM_DESC = '$STREAM_DESC' 
    , STREAM_GENRE = '$STREAM_GENRE' 
    WHERE ID = $IDSESS    
     "; 
+0

ありがとうございました。あなたがSQL版を見つけたらそれは完璧ですが、ありがたく;) –

+0

"SQL版"とはどういう意味ですか? Microsoft SQL Server? –