我有两个文件:
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数据库中运行查询,它可以正常工作。如果我在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;
?>
为什么?
答案 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 ...