数据库错误代码 1146 - 本地与在线

Posted

技术标签:

【中文标题】数据库错误代码 1146 - 本地与在线【英文标题】:Database Error code 1146 - local vs. online 【发布时间】:2012-06-18 15:56:59 【问题描述】:

我是这个网站的新手 - 请温柔一点:P 本地主机上的 mysql 数据库适用于插入语句,但是一旦我将数据库连接更改为服务器连接,它就会给我错误:错误代码 1146:1146 没有任何错误描述。可能是什么原因?根据我的错误捕获逻辑,连接一直成功到查询运行的部分。在本地版本上,它就像一个魅力。有什么想法吗?

:::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::

if($errors == 0)
        
            $DBConnect = @mysql_connect("db.start.ca", "nokeekwe", "classifiedlol");
            if($DBConnect === FALSE)
            
                echo "<p>Unable to connect. " .
                "Error code " . mysql_errno() . ": " .
                mysql_error() . "</p>\n";
                $errors++;
            
            else
            
                $DBName = "nokeekwe";
                $result = @mysql_select_db($DBName, $DBConnect);
                if($result === FALSE)
                
                    echo "<p>Unable to select DB. " .
                    "Error code " . mysql_errno($DBConnect) .
                    ": " . mysql_error($DBConnect) .
                    "</p>\n";
                    $errors++;
                
            
        

        if($errors > 0)
        
            echo "<p>Please use your browser's BACK button" .
            " to  return to the form and fix your errors.</p>\n";
        


        if($errors == 0)
        

            $title = stripslashes($_POST['title']);
            $desc = stripslashes($_POST['desc']);
            $req = stripslashes($_POST['req']);
            $employer = stripslashes($_POST['employer']);
            $phone = stripslashes($_POST['phone']);
            $fax = stripslashes($_POST['fax']);
            $email = stripslashes($_POST['email']);
            $address = stripslashes($_POST['address']);
            $insertJob = "INSERT INTO tbljobs (jobTitle, jobDesc, jobReq, jobEmployer, jobPhone, jobFax, jobEmail, jobAddress) VALUES ('$title', '$desc', '$req', '$employer', '$phone', '$fax', '$email', '$address')";
                $QueryResult = mysql_query($insertJob, $DBConnect); // Run the Query Now woohoo.
                if($QueryResult === FALSE)
                
                    echo "<p>Unable to save your job. " .
                    " Error code " .
                    mysql_errno($DBConnect) . ": " .
                    mysql_errno($DBConnect) . "</p>\n";

                    //echo $insertJob;


                    $errors++;
                
else

            echo "Job Lead Saved!";
            mysql_close($DBConnect);
        

非常感谢

【问题讨论】:

请提供一些代码参考以便更好地理解 提供你的数据库逻辑。这将很有帮助 首先,请去掉mysql_*并使用mysqliPDO,因为mysql_*不再维护,第二次尝试在mysql_connect and mysql_delect_db之前删除@并替换@987654325 @与localhost 为什么回到本地主机?效果很好 您不应在互联网上发布您的用户名和密码。有人会滥用您的数据库服务器。 【参考方案1】:

错误 1146 表示您试图访问一个不存在的表。

http://dev.mysql.com/doc/refman/5.0/en/error-messages-server.html

确保本地和服务器系统上的数据库结构相同。

【讨论】:

【参考方案2】:

错误:1146 SQLSTATE:42S02 (ER_NO_SUCH_TABLE)

消息:表“%s.%s”不存在

http://dev.mysql.com/doc/refman/5.0/en/error-messages-server.html

好像你还没有设置你的数据库表。

【讨论】:

好吧,这听起来像个菜鸟,但我以前从未处理过网站上的数据库,除非它有一个控制面板,如 godaddy、joomla 等。这个来自 start.ca,没有控制面板,他们不得不通过电子邮件向我发送数据库主机名、用户名和密码。现在我不知道如何将实际数据库加载到它。有人知道我该怎么做吗? 我建议您选择任何随机的 SQL 教程来指导您完成 CREATE TABLE ... 语法。 哦,这不是问题,请参阅我有 SQL 格式的 SQL 导出代码,包括创建数据库和添加删除表。我应该把这个逻辑放在哪里才能在主机上创建它?【参考方案3】:

您已将连接信息从本地数据库服务器更改为在线,但您是否真的将本地数据库表移至在线服务器?

1146 表示该表不存在。

【讨论】:

大声笑不...如果没有控制面板,我不知道该怎么做。请原谅我的无知,但我发誓我已经用谷歌搜索了一个星期,没有任何运气。 您是否已经创建了包含所有表和数据的本地数据库? 是的,通过 phpmyadmin,我还为数据库创建和添加/删除表部分(包括内容)备份了 sql 文件。 然后在你的“在线”机器上设置一个 MySQL 服务器,并使用 phpMyAdmin 或任何其他你觉得舒服的工具,导入包含所有创建和填充表的“备份”文件. 问题是我的托管公司没有控制面板,他们通过电子邮件处理功能......所以我必须通过代码来完成。

以上是关于数据库错误代码 1146 - 本地与在线的主要内容,如果未能解决你的问题,请参考以下文章

休眠sql错误1146

thinkphp 传到服务器报错1146

PHPMYADMIN ,,Error in Processing Request 错误代码:200 错误文本:OK

Asp.Net - Stripe 支付意图在本地工作,但在线出现错误 502

导入我的数据库时出错:第 217004 行的错误 1146 (42S02):表 'caol2.cao_curriculo' 不存在

django.db.utils.ProgrammingError: 1146 的解决办法