2013-03-27 70 views
0

我不断收到此错误在我的错误日志中,我不知道为什么。我看着到处Google'd,但我迷路了,我需要帮助:mysql_fetch_array()和mysql_query()问题

[Wed Mar 27 02:14:56 2013] [error] PHP Warning: mysql_query() expects parameter 2 to 
be resource, null given in /nas/wp/www/cluster-1434/XXXXXXXX/wp-content/themes/mytheme 
/groups/single/home.php on line 23 
[Wed Mar 27 02:14:56 2013] [error] PHP Warning: mysql_fetch_array() expects 
parameter 
1 to be resource, null given in /nas/wp/www/cluster-1434/XXXXXXXX/wp-content/themes 
/mytheme/groups/single/home.php on line 24 

这是它引用的代码:

$getlatlong = mysql_query("SELECT * FROM zipcity WHERE zip='".$url[2]."'",$con); 
$ll = mysql_fetch_array($getlatlong); 

这是一个完整的代码,如果你需要:

<?php 
global $bp; 
global $current_user; 
$group_name = $bp->groups->current_group->name; 
$group_id = $bp->groups->current_group->id; 
$groupll = groups_get_groupmeta($group_id, $meta_key = 'latlong'); 
$groupnamecount = strlen($group_name); 
$groupcity = groups_get_groupmeta($group_id, $meta_key = 'city'); 
$groupstate = groups_get_groupmeta($group_id, $meta_key = 'state'); 
$mapaddress = $group_name.'+'.$groupcity.'+'.$groupstate; 
if ($groupnamecount == '5') 
{ 
$grouptype = "zip"; 
} 
if ($grouptype == "zip") { 

$url = explode('/',$_SERVER['REQUEST_URI']); 
$zip = $url[2]; 
$getlatlong = mysql_query("SELECT * FROM zipcode WHERE zip='".$url[2]."'",$con); 
$ll = mysql_fetch_array($getlatlong); 
} else { 
$groupcity = groups_get_groupmeta($group_id, $meta_key = 'city'); 
$groupstate = groups_get_groupmeta($group_id, $meta_key = 'state'); 
$mapaddress = $group_name.'+'.$groupcity.'+'.$groupstate; 
} 

UPDATE

问题是$ CON w ^正如在代码中声明的那样。一旦我解决了这个问题,它就完美了。感谢所有回答!

+2

**警告**您的代码容易受到sql注入攻击! – 2013-03-27 02:35:42

+0

我想可能是你的$ url [2]提供了空值。它可能是数组索引超出限制。你必须追加“或死(mysql_error())”到mysql_query。现在你的查询变成了mysql_query(...)或死(mysql_error())。所以你得到确切的错误。你有我的观点。 – chintan 2013-03-27 02:45:17

+0

@ DanielA.White你能解释一下吗? – michaelrmcneill 2013-03-27 02:59:13

回答

0

连接$ con存在问题,它没有连接并返回null。

0

你不需要把$connmysql_query()功能它只是用来执行你的SQL语句,因为你已经这样做连接到使用mysql_select_db()$con设置,就像下面的数据库..

$getlatlong = mysql_query("SELECT * FROM zipcity WHERE zip='".$url[2]."'",$con); 
    $ll = mysql_fetch_array($getlatlong); 

第一您的连接应LOOL这样的..

$conn = mysql_connect($host,$user,$pass); // mysql config 
mysql_select_db('databasename',$conn); // connection to database 

然后查询这样的..

$getlatlong = mysql_query("SELECT * FROM zipcity WHERE zip='".$url[2]."'"); 
     $ll = mysql_fetch_array($getlatlong); 
0

它看起来像你的$con变量要么从未定义过,要么连接失败。如果您完全不指定连接参数,PHP将自动使用最后的MySQL连接,如下所示:

$getlatlong = mysql_query("SELECT * FROM zipcode WHERE zip='". $url[2] ."'");