[英]mysql_query() shows an error for an included PHP function
我有兩個文件:
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'];
}
<?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.