2011-11-10 2 views
0

わからない「切り捨てられた間違ったDOUBLE値」エラーを与える:)のmysql:更新レコードが、なぜそれが起こっている

mysql_query("update items set photoids=photoids+',$newphotoid' where id='$row[id]'"); 

photoids細胞は最初は空ですが、コマンドは(SCANDIRに赤いphotoidsに投入するためにサイクルを通過しています。

$ row [id]だけでなく$ newphotoidも必ず存在し、常に一意です。

完全に失われました。助けてください!

答えて

4

photoidsフィールドのフィールドタイプは何ですか?今は、複数のカンマ区切りの値を追加して、そのフィールドにSTRINGを割り当てようとしているようです。 float/doubleフィールドの場合、この "string"値は切り捨てられ/無効になります。

例えばphotoidsはフロートであり、 "3.14159265" が含まれ、その後、あなたは

その結果
photoids = photoids + ',1234567' 
photoids = 3.14159265 + ',1234567' 
photoids = 3.14159265 + 0 

やろうとしている場合:

photoids = 3.14159265 
+0

それは(100)utf8_unicode_ci内 –

+2

は 'やってみvarchar型だが代わりに、photoids = CONCAT(photoids、 '、'、$ newphotoid) '。 MySQLは連結に '+'を使用しません。 –

+0

CONCATが仕事をしています!ありがとう! –

関連する問題