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服务器的连接中断,系统错误:111
111
连接被拒绝,这意味着您现在可以访问该服务器(或者连接详细信息不正确)。
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服务器的连接中断,系统错误:111
111
连接被拒绝,这意味着您现在可以访问该服务器(或者连接详细信息不正确)。
twstg.com
是你的网站吗?脚本与数据库位于同一服务器上,如果您可以尝试
localhost
,这将使用套接字而不是TCP。我有2台服务器,我正在尝试从1台连接到另一台,名称不是我提供的,但是它对服务器中的脚本起作用,而不是对mysql服务器配置文件中另一台服务器上的脚本起作用。请在
[mysqld]
下查看
跳过网络
是否存在,如果存在,请注释(
#
)并绑定到
twstg.com
的IP