php和mysql的问题

时间:2011-07-21 07:58:36

标签: 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 $url;
}

5 个答案:

答案 0 :(得分:2)

(这对于评论来说太大了,在提供更多数据时会根据需要更新答案)

你得到的错误是什么,你不能指望我们神奇地知道这一点。可能存在许多问题,无论是在连接,查询还是循环中(如果没有结果)。

您可以通过执行以下操作来检查错误:

mysql_connect(..) or die(mysql_error());
$data = mysql_query(); die(mysql_error());

如果没有错误,那么您仍然缺少对mysql_select_db()的调用。例如,如果您正在执行SELECT * FROM DATABASE.Websites,但您不是,则不需要这样做。)

答案 1 :(得分:1)

您必须至少选择要查询的有效数据库。

将此函数调用放在连接函数下。

mysql_select_db('dbname');

http://php.net/manual/en/function.mysql-select-db.php

答案 2 :(得分:0)

mysqluser帐户是否在服务器上具有正确的访问权限?

我的意思是,您是否'user'@'your ip here''user'@'%'作为用户帐户,而不只是'user'@'localhost'

答案 3 :(得分:0)

你应该先检查连接性

mysql_connect('twstg.com','myUser','myPass')或死(mysql_error);

通过这个你可以检查连接其他这一切对我来说是好的..

答案 4 :(得分:0)

可能mysql_connect()失败了。但是mysql_query()也可能失败,因为脚本中没有mysql_select_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";
}