我正在开发一个用于codeigniter应用程序的Web安装脚本。它是一个文件中的ajax驱动。到目前为止,它成功导入数据库,将数据库配置写入config / database.php并更新config / config.php。
但是,在导入数据库之后,我必须添加一个管理员用户,并且执行此操作的块由于某种原因从未执行。没有错误,我已经将它从try catch块中删除,看看是否有任何问题。有人能看到我在这里看不到的东西吗?
页面很长,所以我只想粘贴我认为重要的功能:
try {
$db = @new mysqli($host, $user, $dbpwd, $dbname);
if($db->connect_errno > 0){
$errmsg='Unable to connect to database.';
}
else{//connected
if(import($db)){
//installed successfully. Create user now
//the user is not created and no error is generated at all.
$statement = $db->prepare("INSERT INTO tblusers (adminfullname,adminemail,adminpwd,confirmed,admintype) VALUES(?,?,?,?,?)");
$newpass=password_hash($pass, PASSWORD_DEFAULT);
$adminName='Admin';
$confirm=1;
$admintype=1;
$statement->bind_param('sssii', $adminName,$email,$newpass,$confirm,$admintype);
$statement->execute();
$errmsg=true;//no error
}
}
$db->close();
echo $errmsg;//back to the calling ajax
}
导入功能从SO复制并直接使用:
function import($db){
$query=file_get_contents('db.sql');
try{
if (@$db->multi_query($query)) {
do {
/* store first result set */
if ($result = @$db->store_result()) {
while ($row = @$result->fetch_row()) {
}
@$result->free();
}
/* print divider */
} while (@$db->next_result());
}
return true;
}
catch (Exception $e){
return false;
}
//end function
}