警告:mysql_select_db():提供的参数不是有效的MySQL-Link资源

时间:2011-04-15 19:20:07

标签: php mysql connection

这是我不断收到错误的代码。相同的包含文件在其他页面上工作,我只在这个页面上遇到问题。这是错误

警告:mysql_select_db():提供的参数不是第18行/var/www/html/spywgc/adm/ctshell/getproduct/getproduct.php中的有效MySQL-Link资源

以下是实际代码:

<?php require_once('../../../Connections/spyware_adm.php'); ?>
<?php require_once('../../../includes/lib_gen.php'); ?>

<?php
//function for returing status of website
function Visit($url)
{
    echo $url;
    mysql_select_db($database_spyware, $spyware) || die(mysql_error());
    $select_url= "select product_id from sp_url where url like '%{$url}%'";
    echo $select_url;
    $run_url= mysql_query($select_url, $spyware);
    $result_descr = mysql_fetch_assoc($run_url);
    echo $result_descr;
    return $result_descr;

}
?>

3 个答案:

答案 0 :(得分:1)

mysql_select_db()期望第二个参数是资源标识符=您的连接。问题是,您将此作为一个函数运行,在其中未建立连接。你必须用这样的东西开始你的功能:

function Visit($url)
{
    $spyware = mysql_connect(); // set this to connect properly
    echo $url;
    mysql_select_db($database_spyware, $spyware) || die(mysql_error());
    // the rest of your function goes on ...

答案 1 :(得分:1)

我认为这两个变量$spyware$database_spyware都是null,因为它们是在函数范围之外定义的(如果有的话)并且未声明为全局变量。尝试添加

global $database_spyware, $spyware

在功能开始时访问(..)。

答案 2 :(得分:0)

您是否检查过您的初始数据库连接调用是否成功?正如大多数mysql函数那样,失败时返回false。同样,您还没有检查查询是否成功。很可能它失败并返回FALSE,然后你将其传递给fetch调用:

$database_spyware = mysql_connect(...);
if ($database_spyware === FALSE) {
   die("Connection failed: " . mysql_error());
}

... etc ...

$run_query = mysql_query(...);

if ($run_query === FALSE) {
   die("Query failed: " . mysql_error());
}

应该是最低可接受的错误处理。