2012-01-15 125 views
-2

当我将工作代码从本地移动到我的专用主机时,没有任何查询正在工作,但是我能够连接到数据库。我知道这应该是一些微不足道的事情,但从上个小时以来我无法解决这个问题。Mysql查询不起作用

这里是我的代码:

<?php 
set_time_limit(0); 
$DbCon = mysql_connect('localhost:1023','username','password'); 
mysql_select_db('dbname', $DbCon); 
if (!$DbCon) 
{ 
die('Could not connect: ' . mysql_error()); 
} 
else 
{ 
echo("wait...\n"); 
    echo("Caching name...\n"); 
$query0="SELECT * FROM sometablename2"; 
$Result0 = mysql_query($query0,$DbCon); 
$anarray=array(); 
    $anotherarray=array(); 
while($records0 = mysql_fetch_array($Result0)) 
{ 
     do something 
} 

} 

输出我得到的是: 等待... 缓存名称... PHP的警告:mysql_fetch_array()预计参数1是资源,布尔在给定的/path/to/php/file/code.php在线42 PHP警告:mysql_free_result()期望参数1是资源,布尔在/path/to/php/file/code.php在线56给出

因此,很显然,我能够连接到数据库,但没有来自此查询的输出。我已经在数据库中运行相同的查询,它正在工作。 任何方向将是非常有益的。

+0

从该查询返回的东西吗? – Kamil 2012-01-15 11:51:56

+0

这就是错误,我试图选择整个表,但是没有任何东西从这个查询返回。 – ankit 2012-01-15 11:59:40

回答

2

使用mysql_error函数可以找出问题所在。

mysql_query("SELECT * FROM nonexistenttable", $link); 
echo mysql_errno($link) . ": " . mysql_error($link) . "\n"; 

编辑:按下面的评论,也尝试,例如:

// make foo the current db 
$db_selected = mysql_select_db('foo', $link); 
if (!$db_selected) { 
    die ('Can\'t use foo : ' . mysql_error()); 
} 
+0

这是一个很棒的提示。谢谢。它说数据库没有选中,当我检查使用这个。困惑,因为我可以看到数据库,也可以运行查询too..Also它不会死与mysql_error()..调查更多,将在这里更新时,当我找到任何东西.. – ankit 2012-01-15 12:31:08

+1

你也应该更新你的代码,以检查mysql_select_db是否工作正常,例如 '// make foo the current db $ db_selected = mysql_select_db('foo',$ link); if(!$ db_selected){ die('Can not use foo:'。mysql_error()); }' – 2012-01-15 12:38:27