【发布时间】:2012-12-08 23:49:34
【问题描述】:
我的问题是我的脚本不会将新用户信息插入到我的数据库表中。我不知道为什么,我一直在看这个近 3 个小时,试图找到问题,但我似乎无法找到它。这是我的脚本(顺便说一下,SQLITE 3):
$db = sqlite_open("../../kinz/kinz-db.sqlite", 0666, $sqlerr);
$query_login = sqlite_query($db, "SELECT * FROM USERS WHERE USER = '$user'");
$result = sqlite_fetch_all($query_login, SQLITE_ASSOC);
$query_setId = sqlite_query($db, "SELECT * FROM USERS WHERE ID = (SELECT MAX(ID) FROM USERS)", $sqlerr);
$result2 = sqlite_fetch_all($query_setId, SQLITE_ASSOC);
$ID = $result2[0][ID] + 1;
if (count($result) >= 1) {
$_SESSION['regErr'] = "Username already in use";
header("Location: register.php");
exit();
} else {
/*This is the registration query*/$query_register = sqlite_query($db, "INSERT INTO USERS (ID, USER, DISPLAY_NAME, PASS_ENC1, PASS_ENC2) VALUES ($ID, '$user', '$displayName', '$pass_enc1', '$pass_enc2')", $sqlerr);
}
if (!$query_register) {
$_SESSION['regErr'] = $sqlerr;
header("Location: register.php");
exit();
} else {
$_SESSION['regSuccess'] = true;
}
【问题讨论】:
-
有什么错误吗?我假设 sqlite3 也有错误报告功能?
-
确实如此,并且我打印了错误。但是没有;它只是一个空变量
-
你真的应该能够将其缩小到一行或两行。
-
PHP 没有获取 sqlite3 的最后一个错误的功能吗?就像 mysql_error 什么的?我在你的代码中没有看到任何这些。
-
@Kinz:您几乎没有进行错误检查...
$db = sqlitee_open(...)失败了吗?$query_login = sqlite_query(...)失败了吗?您必须进行错误检查;我们不能为你做。