我正在尝试连接到与我的脚本不在同一服务器上的数据库。
它不起作用,为什么?
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;
}
答案 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');
答案 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";
}