簡體   English   中英

mysql_query()顯示包含的PHP函數的錯誤

[英]mysql_query() shows an error for an included PHP function

我有兩個文件:

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數據庫中運行查詢,則效果很好。 如果我直接在cart.php使用了get_product_name()函數,那么它將再次無法使用。 但是,如果我刪除該函數並使用下面的代碼,它將起作用:

<?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;
?>

為什么?

問題在這里:

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)您直接將數據庫連接鏈接用作$ 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)的第二個參數傳遞

您必須在函數中單獨使用數據庫連接查詢。.如果在網頁中使用它,則它可以工作,因為它具有可連接的數據庫。

編輯:未指定$ link ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM