数据库错误代码 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_*并使用mysqli
或PDO
,因为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 - 本地与在线的主要内容,如果未能解决你的问题,请参考以下文章
PHPMYADMIN ,,Error in Processing Request 错误代码:200 错误文本:OK
Asp.Net - Stripe 支付意图在本地工作,但在线出现错误 502
导入我的数据库时出错:第 217004 行的错误 1146 (42S02):表 'caol2.cao_curriculo' 不存在