mysql_query()显示包含的PHP函数的错误

时间:2012-10-02 05:40:58

标签: php mysql

我有两个文件:

cart_function.php

function get_product_name($pid){
    $result = mysql_query("SELECT product_name FROM product_table WHERE product_id='".$pid."'", $link);
    $row = mysql_fetch_array($result);
    return $row['product_name'];
}

cart.php

<?php
    include('cart_function.php');
    $pid = $_GET['product_id'];
    $pname = get_product_name($pid);
    echo $pname;
?>

执行cart.php后,显示错误

  

提供的参数不是有效的MySQL-Link资源'

如果我直接在MySQL数据库中运行查询,它可以正常工作。如果我在get_product_name()中直接使用了cart.php函数,那么它再次无效。但是,如果我删除该功能并使用下面的代码,它可以工作:

<?php
    $pid = $_GET['product_id'];
    $result = mysql_query("SELECT product_name FROM product_table WHERE product_id='".$pid."'",$link);
    $row = mysql_fetch_array($result);
    $pname = $row['product_name'];
    echo $pname;
?>

为什么?

3 个答案:

答案 0 :(得分:5)

问题在于:

function get_product_name($pid){
    $result = mysql_query("SELECT product_name FROM product_table WHERE product_id='".$pid."'",
                          $link);

您已撰写$link,但未提供其值。当您传递$pid值时,必须在函数参数中传递此值,如下所示:

function get_product_name($pid,$link){

答案 1 :(得分:0)

1)您直接使用数据库连接链接作为$ link进入函数,因此应将其视为局部变量,并且它没有任何内容。

2)所以你需要在你的函数中声明$ link为全局。

function get_product_name($pid){
        global $link;
        $result=mysql_query("SELECT product_name FROM product_table WHERE product_id='".$pid."'",$link);
        $row=mysql_fetch_array($result);
        return $row['product_name'];
    }

3)或者你可以传递$ link作为get_product_name的第二个参数($ pid,$ link)

答案 2 :(得分:-2)

你必须在函数中单独使用数据库连接查询。 如果您在网页中使用它,它可以工作,因为它有一个连接的数据库可供使用..

编辑:未指定$ link ...