Şamandıralar PHP kullanarak SQLite tabloya doğru kaydedilmez

2 Cevap php

PHP ile SQLite 3 kullanıyorum.

SQLite tablo 2 INTEGER ve bir HALKA sütun oluşur. PHP yüzer kullanarak bu tabloya verileri kaydetme (varsayılan değer yerine saklanır) düzgün kaydedilmez. İki tamsayı sütun kaydedilir. Herhangi bir fikir ne yanlış olabilir? Teşekkür ederim.

Simplified code that actually works correctly:

$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

2 Cevap

Bu sayılar alıntı gerektiğini ben SQLite'ı hiç kullanmamış, ama emin gibi görerek, sadece bir öneri? Bu bana biraz tuhaf görünüyor.

Deneyin:

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

Sqlite veri türleri böylece sorguları çalışmak zorunda, typeless şunlardır:

Aşağıdaki tüm sorgular benim için çalışıyor

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 değişkeni kontrol, bir hata olabilir ve bir null değişken geçmek.