首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法将数据插入第二个数据库连接

无法将数据插入第二个数据库连接
EN

Stack Overflow用户
提问于 2011-09-26 23:59:38
回答 2查看 238关注 0票数 3

请看下面的代码,有两个数据库连接。

首先,它从第一个连接获取数据,然后插入到第二个数据库连接中,但它不会插入-我可以错误地说Unknown column 'fullname' in 'field list'

当我在phpMyAdmin中手动尝试SQL query时,它工作得很好...

代码语言:javascript
运行
复制
$db_new = mysql_connect('localhost', 'root', 'password');
if (!mysql_select_db("menu_new", $db_new)) {
    die("Cant connect menu_new DATABASE");
}

$db_old = mysql_connect('localhost', 'root', 'password');
if (!mysql_select_db("old_menu", $db_old)) {
    die("Cant connect old_menu DATABASE");
}

$SQL_old = "SELECT * FROM old_table";
$q = mysql_query($SQL_old, $db_old);

while ($row = mysql_fetch_assoc($q)) {
    $name = $row['name']; 

    $SQL = "INSERT INTO tbl_name (fullname) values ('$name')";

     //Problem Here - It wont insert into second database
     mysql_query($SQL, $db_new) or die(mysql_error($db_new));
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-27 00:23:28

感谢@Konerak的建议,这确实起作用了!

要从数据库连接插入/选择数据,必须在表名之前包括数据库名称。

例如

发自:

代码语言:javascript
运行
复制
mysql_query("INSERT into tbl_name (fullname) values ('1')", $db_new) or die(mysql_error($db_new));

至:

代码语言:javascript
运行
复制
mysql_query("INSERT into menu_new.tbl_name (fullname) values ('1')", $db_new) or die(mysql_error($db_new));

不过,这真的很奇怪。

票数 1
EN

Stack Overflow用户

发布于 2011-09-27 00:48:29

这种行为并不奇怪。只需在mysql_connect调用中添加$link参数,并将其设置为true即可。缺省情况下它是False,这意味着用相同的参数重用这个函数,这就是你所做的,因为数据库名称不在mysql-上,它将用相同的参数重用现有的连接。所以你有两个变量,但只有一个连接。

这意味着您只需移动此连接中使用的数据库。使用db名称作为前缀修复了这个问题,因为如果连接在同一个db服务器上,则MySQL允许来自同一连接的基间操作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7557877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档