2 u012098484 u012098484 于 2016.04.07 22:28 提问

网页中PHP代码向sqlite数据库写数据时,“000...0”这样的字符串会被存储为0,求解原因?

如题,我用PHP向sqlite的一个表中写数据,包含用户名和密码两个字段,但是当字段值(用户名或密码)是类似“000...0”这样的值时,数据库中保存的字段值就只剩下一位0了。
PHP代码如下

<?php
$name=$_POST["username"];
$password=$_POST['password'];
echo gettype($password);   //这句用来测试password是何种数据类型,经验证是string,可既然是字符串为何会遗失数据呢?
class MyDB extends SQLite3
{
    function __construct()
    {
        $this->open('survey.db');
    }
}
$db = new MyDB();
if(!$db){
    echo $db->lastErrorMsg();
} else {
    echo "Opened database successfully\n";
}
$sql =<<<EOF
      INSERT INTO login (username,password)
      VALUES ($name,$password);
EOF;
$ret = $db->exec($sql);
if(!$ret){
    echo $db->lastErrorMsg();
} else {
    echo "Records created successfully
";
}
$db->close();
?> 

2个回答

caozhy
caozhy   Ds   Rxr 2016.04.07 22:47

那可能是读取出来显示的问题。你在哪里看到它变成0了。

u012098484
u012098484 在数据库管理工具看到的,显示为0,试了几个sqlite的管理工具了,都是“0”.见楼下发截图
2 年多之前 回复
u012098484
u012098484   2016.04.07 22:56

数据库截图。
图片说明

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android SQLite 数据库存储详解
Android SQLite 数据库存储详解 SQLite 是一款轻量级的关系型数据库 Android为了让我们能够更加方便地管理数据库,专门提供了一个SQLiteOpenHelper帮助类,借助这个类就可以非常简单地对数据库进行创建和升级。 SQLiteOpenHelper是一个抽象类。 SQLiteOpenHelper中有两个抽象方法,分别是onCreate()和onU
sqlite插入记录值为纯数字的字符串的问题以及sqlite语句中字符串的拼接
当向sqlite数据库中插入某条记录,而这条记录中的某个字段为纯数字的字符串时,在这条记录插入到数据库中时,这个字段的值就有一定几率会被转成数字Y_Y!! 例如下面的代码: String phone = "18801774974";String psw = "704430";String captcha = "025";ContentValues cv = new ContentValue
Android中SQLite数据库中空字符串的判断方式
Android中,我们在使用SQLite数据库时,传递一个空指针进去,当你想从数据库获取这个数据时,getString(“key”)获取的值就是“null”,不是空指针null.正确方法使用(null!=value &&!value.equals(“null”) && !value.equals(“”))进行判断
为什么嵌入html中的php代码浏览器打的时侯会被注释掉
今天写微信分享,在一个*.html文件中写了一段php代码,竟然不变色,顿时感觉有问题,果然在打开页面的时候出现了怪怪的一幕,一段PHP代码显示了出来,打开源代码一看,有一半的php代码被注释掉了。寻找解决方案,原因是 php可以写在html里面,比如      但是如果插入了php语句,必须要用php的环境来运行这个html的文件才能有效果,比如WAMPServ
Sqlite3中存储类型和数据类型结合文档解析。
sqlite3是个很小的数据库,运行在手机,机顶盒上....那它就不可能像musql,sqlserver那么规范,有很多的数据类型,之前我也以为它定义了很多数据类型,其实不是他就5个存储类,那么多数据类型是根据一整套严谨的规则映射的!!还有什么char,varchar其实都是没有的..下面将结合文档详细讲解,相信看完你会了解更多,其实主要就是翻译文档.... sqlite官网:http://ww
SQLite允许向一个integer型字段中插入字符串
SQLite允许向一个integer型字段中插入字符串 这是一个特性,而不是一个bug。SQLite不强制数据类型约束。任何数据都可以插入任何列。你可以向一个整型列中插入任意长度的字符串,向布尔型列中插入浮点数,或者向字符型列中插入日期型值。在CREATE TABLE中所指定的数据类型不会限制在该列中插入任何数据。任何列均可接受任意长度的字符串(只有一种情况除外:标志为INTEGER PRI
sqlite3数据库写入时间操作
在今天的项目中,想在sqlite3数据库中加一个时间,原本用的是time()函数获取时间,通过简单的处理写入数据库,但是转换相比下面的操作太过于复杂在创建sqlite表的时候只需加[CreatedTime] TimeStamp NOT NULL DEFAULT (datetime('now','localtime'))意思是单添加一条数据时自动获取本地时间并且写入。添加数据时此项不需要添加(表名为t
关于sqlite的文本字段插入blob数据
sqlite字段类型的获取隐藏问题
解决SQLite数据库中文乱码问题
关于SQLite中出现中文乱码的分析以及解决方案     我们在使用SQLite数据库时候,可能会发现,向数据库插入数据时候显示的是汉字,但通过SQLite读出来时却显示的乱码,这是因为SQLite数据库所支持的编码方式和我们程序中的编码方式不一样,SQLite数据库采用的是UTF-8编码方式,而我们在程序中常常使用的是宽字节uncoid编码方式,所以使用SQLite数据库读出来以后会显示乱码,
sqlite数据库存储日期格式
如题:sqlite3创建的数据库表,存储时间的格式可以是DATETIME,插入或者更新日期数据的时候只要日期字符串满足格式  年-月-日 时:分:秒  即可。 注意:日和时之间有空格