Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在2个数据库中提交记录_Php_Mysql - Fatal编程技术网

Php 在2个数据库中提交记录

Php 在2个数据库中提交记录,php,mysql,Php,Mysql,我有一个表单,我想在两个数据库中提交表单数据。但问题是:两个数据库都位于不同的服务器上。我是mysql新手,所以我不知道该怎么做。我在php工作。我正在与您共享我的代码,它无法正常工作。因此,请查看以下内容: $con = mysql_connect('differenthost','user1','pass1'); mysql_select_db('dbname1',$con); $path = "misc/classified/".$submiturl; mysql_query("ins

我有一个表单,我想在两个数据库中提交表单数据。但问题是:两个数据库都位于不同的服务器上。我是mysql新手,所以我不知道该怎么做。我在php工作。我正在与您共享我的代码,它无法正常工作。因此,请查看以下内容:

$con = mysql_connect('differenthost','user1','pass1');
mysql_select_db('dbname1',$con);

$path = "misc/classified/".$submiturl;

mysql_query("insert into tablename1 (title,description,status,parent_id,path) values ('$submiturl','$submiturl','active','68','$path')") or die(mysql_error());
mysql_close($con);

mysql_connect('localhost','user2','pass2');
mysql_select_db('dbname2');

$check = mysql_query("select count(*) from tablename2 where userid = '".$_SESSION['userid']."' and datecreated = '$datecreated'") or die(mysql_error());
提交表单时出现此错误:

Warning: mysql_connect() [function.mysql-connect]: Unknown MySQL server host 'differenthost' (25) in /home/class/public_html/microworker/submiturl.php on line 11

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /home/class/public_html/microworker/submiturl.php on line 12

Warning: mysql_query() [function.mysql-query]: Access denied for user 'user2'@'localhost' (using password: NO) in /home/class/public_html/microworker/submiturl.php on line 16

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/class/public_html/microworker/submiturl.php on line 16
Access denied for user 'user2'@'localhost' (using password: NO)

正确的语法是什么?

在连接字符串中,您使用了错误的服务器名称

$con = mysql_connect('differenthost','user1','pass1');
用户localhost作为您的服务器名称

$con = mysql_connect('localhost','user1','pass1');
你的完整代码

$con = mysql_connect('localhost','user1','pass1');
        mysql_select_db('dbname1',$con);

        $path = "misc/classified/".$submiturl;

        mysql_query("insert into tablename1 (title,description,status,parent_id,path) values ('$submiturl','$submiturl','active','68','$path')") or die(mysql_error());
        mysql_close($con);

        mysql_connect('localhost','user2','pass2');
        mysql_select_db('dbname2');

        $check = mysql_query("select count(*) from tablename2 where userid = '".$_SESSION['userid']."' and datecreated = '$datecreated'") or die(mysql_error());
或者,如果您使用的是远程主机,请检查该行中的主机名

Warning: mysql_connect() [function.mysql-connect]: Unknown MySQL server host 'differenthost' (25) in /home/class/public_html/microworker/submiturl.php on line 11
清楚地表明您的应用程序无法连接到数据库。请尝试在此行中提供正确的主机名和/或用户名/密码

$con = mysql_connect('differenthost','user1','pass1');

首先,您应该检查连接是否成功。您在第一个实例中遇到连接错误

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>

请参见使用此代码的

您可以在mysql\u查询中使用$con和$con2作为第二个参数

$con = mysql_connect('differenthost','user1','pass1');
mysql_select_db('dbname1',$con);

$path = "misc/classified/".$submiturl;

mysql_query("insert into tablename1 (title,description,status,parent_id,path) values ('$submiturl','$submiturl','active','68','$path')",$con) or die(mysql_error());
mysql_close($con);

$con2 = mysql_connect('localhost','user2','pass2');
mysql_select_db('dbname2');

$check = mysql_query("select count(*) from tablename2 where userid = '".$_SESSION['userid']."' and datecreated = '$datecreated'",$con2) or die(mysql_error());
请参考此

您可以多次调用
mysql\u connect()
,但如果参数相同,则需要为“
$new\u link
”(第四个)参数传递true,否则将重复使用相同的连接

那么你有

$dbh1 = mysql_connect($hostname, $username, $password); 
$dbh2 = mysql_connect($hostname, $username, $password, true); 

mysql_select_db('database1', $dbh1);
mysql_select_db('database2', $dbh2);
然后,要查询数据库1,请执行以下操作:

mysql_query('select * from tablename', $dbh1);
对于数据库2:

mysql_query('select * from tablename', $dbh2);
或者,如果mysql用户可以访问这两个数据库,并且它们位于同一台主机上(即,两个数据库都可以从同一个mysql连接访问),您可以:

  • 保持一个连接处于打开状态,并继续调用
    mysql\u select\u db()
    以在两者之间进行交换。我不认为这是一个干净的解决方案,你会很容易得到的情况下,你查询错误的数据库等
  • 在指定数据库名称的地方使用查询(例如,从database2.tablename中选择*),但这很可能也是一个很难实现的问题

另外,请阅读Troleskn关于使用PDO的回答,因为这可能是一种更好的方法。

问题不在于保存2个数据库,而在于连接配置

确保“differenthost”是可访问的,并且MySQL端口是打开的(通常是3306)


另外,PHP 5.5中不推荐使用mysql_connect,我建议改用PDO。

'localhost'将您连接到同一服务器上的数据库。要访问不同服务器上的数据库,请提供其实际主机,而不是“differenthost”

然后,当您连接到第二台服务器(第二次调用mysql\u connect)时,获取并保存连接值,然后每次对于每个新查询,您都不需要再次重新连接。正如您所知,对于finction mysql_查询,您可以传递第二个参数——它是到数据库的链接


并切换到较新的扩展名MySQLi,此扩展名很快将被弃用。

首先检查您的数据库连接。出于安全目的,我在此处使用了虚拟名称,因此总体错误是它在本地服务器中提交,但没有在第二台服务器上提交。您的错误与数据库服务器的连接有关。可能是由于凭据错误。您的远程服务器允许外部连接?@user2226181安全目的?安全你使用mysql_query(),它根本不确定,你也不使用预先准备好的语句来保护你的查询,你还不如发一封群发电子邮件,邀请人们删除你的网站。苏拉布,这两个数据库不在同一台服务器上,那个么你们怎么能说这两个服务器名都是本地主机呢?你们在网站上使用它?你们在不同的服务器上使用这两个数据库?现在发生了这个错误警告:mysql_connect()[function.mysql connect]:用户'direc_esyndb'@'mylord.websitewelcome.com'的访问被拒绝(使用密码:YES)在第11行的/home/class/public_html/microworker/submitur.php中,您还应该检查数据库的配置,即您的数据库具有连接权限。问题是我没有将服务器名称添加到远程主机中,因此无法访问该服务器。因此,解决方案是,如果要访问其他服务器数据库,则必须在远程服务器功能中添加它们的服务器名称。