我喜歡認爲我對PHP非常瞭解,但是這讓我感到困惑。
保持它的基本的,我有:
function req_new($pname, $use=null, $depID=null, $manID=null, $manName=null, $suppID=null, $suppName=null, $cat=null, $brand=null, $name, $email, $custom_code, $user=null, $method=null)
{
//validation
if($pname == ''){return false;}
if($manID==null AND $manName==null){return false;}
foreach(func_get_args() as $arg)
{
$arg = fquery_sanitize($arg);
}
//submit new request
$sql = "insert into sds_product_requests ".
"(prodName, produse, depID, reqDate, manID, manName, suppID, suppName, prodCat, prodBrand, Name, Email, InternalC, `user`, method) ".
"VALUES ".
"('$pname','$use','$depID', NOW(),'$manID', '$manName', '$suppID', '$suppName', '$cat', '$brand', '$name', '$email', '$custom_code', '$user', $method)";
$result = fquery_db($sql);
if($result>1)
{return true;}
else
{return false;}
}
如果代碼中使用變量名$name
,這是行不通的。改用另一個變量名稱,如$pname
,它可以工作。如果我使用變量名稱$name
,它將返回false。
任何想法爲什麼會發生這種情況?
調用函數
<?php
$name = getPOST('name');
$depID = getPOST('depID');
$cat = getPOST('cat');
$supp = getPOST('supp');
$suppID = getPOST('suppID');
$man = getPOST('man');
$manID = getPOST('manID');
$confirm = req_new('THIS IS A NAME', null, $depID, $manID, $man, $suppID, $supp, $cat, null, null, null, null, fauth_GetUserID(), 1);
?>
你可以給你的代碼中更大的一部分,也許整個函數的代碼?另外,你有沒有在'return false'中忘記分號? – insumity 2011-06-13 14:37:25
用「$ namet」發佈你的代碼 – 2011-06-13 14:38:11
@Luzhin:+1,這聽起來像是名稱衝突導致了一個問題。 – Jonah 2011-06-13 14:39:11