参见下面的代码,有两个数据库连接.
首先,它从第一个连接获取数据,然后插入第二个数据库连接,但不会插入-我可能会说“字段列表”中的“未知列”全名”错误
当我在phpMyAdmin中手动尝试SQL查询时,它工作正常…
$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));
}
解决方法:
这种行为没有什么奇怪的.只需在您的mysql_connect调用上添加$link参数,并将其设置为true.默认情况下,它为False,这意味着使用相同的参数重用该函数,这是您正在做的,因为db-name不在mysql-connect上,它将重用具有相同参数的现有连接.因此,您有两个变量,但只有一个连接.
这意味着您只是在移动此连接中使用的数据库.使用数据库名称前缀解决了该问题,因为如果MySQL位于同一数据库服务器上,则它允许来自同一连接的数据库间操作.
标签:sql,mysql,php,database 来源: https://codeday.me/bug/20191207/2087324.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。