MySQL / php:我创建了数据库和表,当我尝试INSERT时,我有#1146

时间:2014-08-28 12:58:23

标签: insert mysql-error-1146

我正在用php编写安装脚本,这个脚本必须向用户询问一些数据,然后将它们存储在XML文件和数据库中。

以下是程序:

1)插入数据;

2)将配置数据(例如数据库名称,用户,密码,主机,端口)保存在XML文件中

3)使用这些数据来安装数据库(我有一个用于创建它的空转储)

4)在“admin”表中插入第一个用户数据(取自第1点中的表格)

现在,一切正常,直到第4点。 当我尝试访问数据库时,MySql总是返回错误#1146,表示该表不存在。

这是我的自定义JSON日志:

{
 "Status":"KO",
 "Reason":"SELECT * FROM bbscp_admin_user; || Table 'adb.bbscp_admin_user' doesn't exist",
 "Errno":1146
}

显然我用phpMyAdmin和mysql(来自cli)检查过,我可以说数据库和表都存在。

这是我创建数据库的部分:[这很好用]

$Install = Install::getInstance();
$sqlscript = str_replace("__DBNAME__", 
                         $config_info['dbname'], 
                         file_get_contents('../config/bbscp-base-db.sql')
                        );

$connection = mysqli_connect($config_info['dbhost'],
                             $config_info['dbuser'],
                             $config_info['dbpwd']
                             ) or die("Unable to connect! Error: ".mysql_error());  

if(mysqli_query($connection,'CREATE DATABASE '.$config_info['dbname'].';')){
    echo 'Database successfully createad';
    mysqli_close($connection);  
}else{
    die('ERROR CREATING DATABASE!');
}

这里我从转储填充数据库的部分(它只添加表)

$connection = mysqli_connect($config_info['dbhost'],
                             $config_info['dbuser'],
                             $config_info['dbpwd'],
                             $config_info['dbname']
                            ) or die("Unable to connect! Error: ".mysql_error());

if(mysqli_multi_query($connection, $sqlscript)){
    echo 'Database successfully imported';
    mysqli_close($connection);  
}else{
    die('ERROR IMPORTING DATABASE');
}

现在是决定性的部分,我打开了与数据库的连接(使用我过去几年开发的库,并且一直工作正常)

$DB = new Database(Install::getInstance());
$Q = new Query();

$DB->connect();
$query = $Q->addNewUser($config_info['nickname'],
                        $config_info['password'],
                        $config_info['firstname'],
                        $config_info['lastname'],
                        $config_info['email'],
                        0);  // this just returns the query string I need
       // the query in this case is:
       //   INSERT INTO bbscp_admin_user               
       //            (nickname,password,firstname,lastname,mail,confirmed)
       //          VALUES (the ones above);"



    $res=$DB->startQuery($query); // THIS IS WHERE THE ERROR IS RETURNED
           // this function only wraps the mysqli_query and returns a custom JSON

我已经尝试了很多解决方案..表存在但是我在此时尝试调用的每个查询都不起作用,因为显然“表不存在”(甚至使用mysqli函数而不是mines)。

提前致谢并抱歉这个长期问题! : - )

编辑1 在这几天我改变了很多代码,我尝试使用函数,对象和重定向来实现不同的实现,但它们似乎都没有用。

事情总是一样的:

  • 创建数据库
  • 尝试添加用户时返回错误代码
  • 如果我刷新页面,则会正确添加用户

0 个答案:

没有答案