【发布时间】:2019-02-27 22:48:15
【问题描述】:
自从迁移到 PHP7.1 后,“$record”不再写入数据库。
它仍在向索引中添加 +1 记录,但并未将实际信息写入文件 namefile.dat。
namefile.dat 权限设置为 644,但文件仍然返回空,没有数据。
if (!$db->open("../namefile")) {
$schema = array(
array("key", FFDB_INT, "key"),
array("nname", FFDB_STRING),
array("desc", FFDB_STRING),
array("daya", FFDB_INT),
array("yeara", FFDB_INT)
);
// Try and create it...
if (!$db->create("namefile", $schema)) {
echo "Error creating database\n";
return;
}
}
$record["key"] = $data;
$record["nname"] = ucwords($datana);
$record["desc"] = $desc;
list($record["daya"]) = sscanf($daya, "%d"); // string -> int
list($record["yeara"]) = sscanf($yeara, "%d"); // string -> int
有什么想法吗?因为我试图更改为 $_POST 来强制它....
$record["key"] = $_POST[$data];
$record["nname"] = ucwords($_POST["$datana"]);
$record["desc"] = $_POST["$desc"];
list($record["daya"]) = sscanf($_POST["$daya", "%d"]);
list($record["yeara"]) = sscanf($_POST["$yeara", "%d"]);
....但仍然无法将值写入文件。
有什么建议吗?
谢谢
编辑
错误日志指向这两个函数 -
function read_byte($fp) {
return $this->bin2dec(fread($fp, 1), 1);
}
function read_str($fp) {
$strlen = $this->bin2dec(fread($fp, 4), 4);
return fread($fp, $strlen);
}
注意:bin2dec 的工作方式与 bindec 类似,没有错误
【问题讨论】:
-
你之前用的是哪个版本?
-
$db的类是什么? -
PHP5.6,一切都很好。但是为了对这种情况造成更大的破坏,我还迁移到了新服务器。 Phpcodechecker.com 没有指责原始脚本有任何错误
-
是的,平面文件 db....它非常适合我的场景
标签: php return-value upgrade deprecated