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”.见楼下发截图
一年多之前 回复
u012098484
u012098484   2016.04.07 22:56

数据库截图。
图片说明

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!