php和mysql的问题
我正在尝试连接到与脚本不在同一服务器上的数据库 它不起作用,为什么php和mysql的问题,php,mysql,Php,Mysql,我正在尝试连接到与脚本不在同一服务器上的数据库 它不起作用,为什么 mysql_connect('twstg.com', 'myUser', 'myPass'); $data = mysql_query("SELECT * FROM Websites ORDER BY RAND() LIMIT 1"); while($info = mysql_fetch_array( $data)) { $url = $info['url']; echo $u
mysql_connect('twstg.com', 'myUser', 'myPass');
$data = mysql_query("SELECT * FROM Websites ORDER BY RAND()
LIMIT 1");
while($info = mysql_fetch_array( $data)) {
$url = $info['url'];
echo $url;
}
(这太大了,无法发表评论,将在提供更多数据时酌情更新答案)
你犯了什么错,你不能指望我们神奇地知道。可能会出现很多问题,无论是在连接、查询中,还是在循环中(如果没有结果)
您可以通过执行以下操作来检查错误:
mysql_connect(..) or die(mysql_error());
$data = mysql_query(); die(mysql_error());
如果没有错误,您仍然缺少对mysql\u select\u db()
的调用。例如,如果您正在从数据库网站执行一个选择*,,则不需要这样做,但您不是:)(这对于评论来说太大了,将在提供更多数据时根据需要更新答案)
你犯了什么错,你不能指望我们神奇地知道。可能会出现很多问题,无论是在连接、查询中,还是在循环中(如果没有结果)
您可以通过执行以下操作来检查错误:
mysql_connect(..) or die(mysql_error());
$data = mysql_query(); die(mysql_error());
如果没有错误,您仍然缺少对mysql\u select\u db()
的调用。例如,如果您正在从DATABASE.Websites执行SELECT*操作,则不需要执行此操作,但您不是:)mysqluser帐户在服务器上是否具有正确的访问权限
我的意思是,您是否将'user'@'your ip here'
或'user'@'%
作为用户帐户,而不仅仅是'user'@'localhost'
mysqluser帐户在服务器上是否具有正确的访问权限
我的意思是,您是否将'user'@'your ip here'
或'user'@'%
作为用户帐户,而不仅仅是'user'@'localhost'
您必须至少选择一个要查询的有效数据库
将此函数调用置于连接函数下
mysql\u select\u db('dbname')代码>
您必须至少选择一个要查询的有效数据库
将此函数调用置于连接函数下
mysql\u select\u db('dbname')代码>
您应该先检查连接
mysql\u connect('twstg.com','myUser','myPass')或die(mysql\u错误)
通过这一点,您可以检查连接,其他的一切对我来说都是正常的。您应该先检查连接
mysql\u connect('twstg.com','myUser','myPass')或die(mysql\u错误)
通过这一点,您可以检查其他连接,确保我一切正常。可能mysql_connect()失败。但mysql\u query()也可能失败,因为脚本中没有mysql\u select\u db()
。您的本地服务器可能已配置为选择默认数据库,而另一台服务器未选择。我们永远不会知道。。。除非您在脚本中添加了一些错误处理
任何mysql函数都可能失败。如果其中任何一个返回false
错误,您必须处理此错误情况
<?php
define('DEBUG', 1);
function mySimpleErrorHandler($public, $private) {
echo $public;
if (defined('DEBUG') && DEBUG ) {
echo " \n", $private;
}
die;
}
$mysql = mysql_connect('twstg.com', 'myUser', 'myPass')
or mySimpleErrorHandler('database connection failed', mysql_error());
mysql_select_db('databasename', $mysql)
or mySimpleErrorHandler('database connection failed', mysql_error($mysql));
$data = mysql_query("SELECT * FROM Websites ORDER BY RAND() LIMIT 1")
or mySimpleErrorHandler('query failed', mysql_error($mysql));
echo "results: \n";
while( false!==($info=mysql_fetch_array($data)) ) {
echo $info['url'], "\n";
}
可能mysql\u connect()失败。但mysql\u query()也可能失败,因为脚本中没有mysql\u select\u db()
。您的本地服务器可能已配置为选择默认数据库,而另一台服务器未选择。我们永远不会知道。。。除非您在脚本中添加了一些错误处理
任何mysql函数都可能失败。如果其中任何一个返回false
错误,您必须处理此错误情况
<?php
define('DEBUG', 1);
function mySimpleErrorHandler($public, $private) {
echo $public;
if (defined('DEBUG') && DEBUG ) {
echo " \n", $private;
}
die;
}
$mysql = mysql_connect('twstg.com', 'myUser', 'myPass')
or mySimpleErrorHandler('database connection failed', mysql_error());
mysql_select_db('databasename', $mysql)
or mySimpleErrorHandler('database connection failed', mysql_error($mysql));
$data = mysql_query("SELECT * FROM Websites ORDER BY RAND() LIMIT 1")
or mySimpleErrorHandler('query failed', mysql_error($mysql));
echo "results: \n";
while( false!==($info=mysql_fetch_array($data)) ) {
echo $info['url'], "\n";
}
mysql_connect('twstg.com','myUser','myPass');如果可疑,请再次检查主机是否正确错误检查在哪里?错误消息在哪里?mysql_connect('twstg.com','myUser','myPass');如果可疑,请再次检查主机是否正确错误检查在哪里?错误消息在哪里?无法连接到服务器。。。“读取初始通信数据包”时与MySQL服务器的连接中断,系统错误:111111
连接被拒绝,这意味着您现在可以访问该服务器(或者连接详细信息不正确)。twstg.com
是你的网站吗?脚本与数据库位于同一服务器上,如果您可以尝试localhost
,这将使用套接字而不是TCP。我有2台服务器,我正在尝试从1台连接到另一台,名称不是我提供的,但是它正在为服务器中的脚本工作,而不是为mysql服务器配置文件中另一台服务器上的脚本工作。请在[mysqld]
下查看跳过网络
是否存在,如果存在,请注释(#
)并绑定到twstg.com
的IP。然后,您还需要检查防火墙等,它在本地工作(可能),因为它使用的是unix套接字。它的一个文件与db连接并选择操作:mysql\u connect('xxx','xxx','xxx')$data=mysql\u query(“select*FROM capital.Websites ORDER BY RAND()LIMIT 1”),而($info=mysql\u fetch\u array($data)){$url=$info['url'];echo$url;}无法连接到服务器。。。“读取初始通信数据包”时与MySQL服务器的连接中断,系统错误:111111
连接被拒绝,这意味着您现在可以访问该服务器(或者连接详细信息不正确)。twstg.com
是你的网站吗?脚本与数据库位于同一服务器上,如果您可以尝试localhost
,这将使用套接字而不是TCP。我有2台服务器,我正在尝试从1台连接到另一台,名称不是我提供的,但是它对服务器中的脚本起作用,而不是对mysql服务器配置文件中另一台服务器上的脚本起作用。请在[mysqld]
下查看跳过网络
是否存在,如果存在,请注释(#
)并绑定到twstg.com
的IP