フロートは、PHPを使用してSQLiteのテーブルに正しく保存されていません

StackOverflow https://stackoverflow.com/questions/2146376

  •  23-09-2019
  •  | 
  •  

質問

私はPHPとSQLiteの3を使用しています。

SQLiteのテーブルが2 INTEGER一個のFLOAT列から成ります。使用してこのテーブルにデータを保存するときにPHPのフロートは、(デフォルト値が代わりに保存されている)が正しく保存されません。 2つの整数の列が保存されます。すべてのアイデアはどのような間違っているだろうか?ありがとうございます。

の簡素化されたコードを実際に正しく動作すること:

$conn = new SQLite3('dbFileName');
$conn->query("CREATE TABLE data (
       id INTEGER NOT NULL DEFAULT 0 ,
       ts INTEGER NOT NULL DEFAULT 0 ,
       value FLOAT NOT NULL DEFAULT 0
    );"
);
$conn->query("REPLACE INTO data(id,ts,value) VALUES ('1','1234567890','12.1')");

- > 1 | 1234567890 | 0

正しい解決策はありません

他のヒント

これは、私はSQLiteのを使用したことがないが、あなたは必ず数字を引用符で囲む必要がありますされているよう見て、ただの提案ですか?それはやや奇妙に思えます。

試します:

$conn->query("REPLACE INTO data(id,ts,value) VALUES (1, 1234567890, 12.1)");
あなたのクエリが仕事に持っているので、

Sqliteをデータ型は、型なしあります:

私のために

以下のすべてのクエリの作品

REPLACE INTO data(id,ts,value) VALUES ('1','1234567890','12.1');
REPLACE INTO data(id,ts,value) VALUES ('1','1234567890','12,123')
REPLACE INTO data(id,ts,value) VALUES ('1','1234567890','abc');

あなたのPHP変数をチェックし、あなたはバグがあるかもしれないし、あなたがnullの変数を渡します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top