我想通过PHP中的URL中的多个变量来获取一些信息,但我不认为它的工作。如何在PHP中通过URL传递多个变量?
$allowedFunctions = array(
'returnAllProducts',
'refreshCurrentProduct'
);
$IDNUM = $_GET[ 'idNum' ];
$functionName = $_GET[ 'func' ];
if(in_array($functionName, $allowedFunctions) && function_exists($functionName))
{
$functionName();
}
然后我有refreshCurrentProduct功能:
function refreshCurrentProduct() {
$dbh=mysql_connect ("DATABASE","USER", "PASS") or die('I cannot connect to the database because:'. mysql_error());
mysql_select_db("TABLE");
$query = "SELECT `ID` FROM `PRODUCTS`";
$result = mysql_query($query) or die('Query failed:'.mysql_error());
$DB_STOCK = mysql_query("SELECT `STOCK` FROM `PRODUCTS`") or die('Query failed:'.mysql_error());
$DB_SHORT = mysql_query("SELECT `MYNAME` FROM `PRODUCTS`") or die('Query failed:'.mysql_error());
$DB_LONG = mysql_query("SELECT `DESCRIPTION` FROM `PRODUCTS`") or die('Query failed:'.mysql_error());
$DB_PRICE = mysql_query("SELECT `PRICE` FROM `PRODUCTS`") or die('Query failed:'.mysql_error());
$DB_SHIP = mysql_query("SELECT `SHIPPING` FROM `PRODUCTS`") or die('Query failed:'.mysql_error());
$ID = mysql_result($result,$IDNUM,"ID");
$STOCK = mysql_result($DB_STOCK,$IDNUM,"STOCK");
$SHORT = mysql_result($DB_SHORT,$IDNUM,"MYNAME");
$LONG = mysql_result($DB_LONG,$IDNUM,"DESCRIPTION");
$PRICE = mysql_result($DB_PRICE,$IDNUM,"PRICE");
$SHIP = mysql_result($DB_SHIP,$IDNUM,"SHIPPING");
echo '
//echo $STOCK, $SHORT, etc....
';
}
我使用的URL是products.php?func=refreshCurrentProduct&idNum=4
从理论上讲,应该从排在它4显示,但是,只有它显示第一行的信息。如果我在函数中做了$IDNUM=5
,它会显示第5行,所以我传递信息的方式有些问题。
另外,如何创建(例如)$ STOCK而不必在$ DB_STOCK中包含太多的代码?似乎必须有更好的方式...
'mysql_error'公开错误消息的详细信息(http://msdn.microsoft.com/en-us/library/ms995351.aspx#securityerrormessages_topic2)。此外,旧的MySQL驱动程序相当过时。看看PDO(http://php.net/PDO)并准备报表。 – outis 2010-02-04 20:07:30