Pergunta

Estou usando o SQLite 3 com PHP.

A tabela SQLite consiste em 2 inteiro e uma coluna de flutuação. Ao salvar os dados nesta tabela usando flutuações PHP não são salvos corretamente (o valor padrão é armazenado). As duas colunas inteiras são salvas. Alguma ideia do que poderia estar errado? Obrigada.

Código simplificado que realmente funciona corretamente:

$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

Nenhuma solução correta

Outras dicas

Isso é apenas uma sugestão, visto que nunca usei o SQLite, mas você tem certeza de que os números devem ser citados? Isso parece um pouco estranho para mim.

Tentar:

$conn->query("REPLACE INTO data(id,ts,value) VALUES (1, 1234567890, 12.1)");

Os tipos de dados SQLite são digitados, então suas consultas precisam funcionar:

Todas as seguintes consultas funcionam para mim

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');

Verifique sua variável PHP, você pode ter um bug e passar uma variável nula.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top