這是代碼。它似乎在PHP 5中有問題。它在PHP 4.4.9中運行良好。有人可以幫我理解爲什麼這個MySQL更新代碼不工作php 5
if($_REQUEST['action']== "Update"){
$curDate = date("Y-m-d");
$image =$_FILES['vImage']["name"];
$uploadedfile = $_FILES['vImage']['tmp_name'];
$sql="UPDATE businessad
SET iBUserID= '$_REQUEST[iBUserID]',
iCategoryID= '$_REQUEST[iBCategoryID]',
vAdTitle= '$_REQUEST[vAdTitle]',
tAdText= '$_REQUEST[tAdText]',
vAdImage= '$vAdImage',
vAdURL= '$_REQUEST[vAdURL]',
dStartDate= '$_REQUEST[dStartDate]',
dEndDate= '$_REQUEST[dEndDate]',
vAddress1= '$_REQUEST[vAddress1]',
vAddress2= '$_REQUEST[vAddress2]',
vCity= '$_REQUEST[vCity]',
vState= '$_REQUEST[vState]',
vZipCode= '$_REQUEST[vZipCode]',
vPhone= '$_REQUEST[vPhone]',
vEmail= '$_REQUEST[vEmail]',
eStatus='$_REQUEST[eStatus]'
WHERE iBusAdID='".$_REQUEST['iBusAdID']."'";
$db_sql=$obj->sql_query($sql);
if($db_sql)
{
$msg=MSG_UPDATE;
header("Location:businessadview.php?var_msg=$msg");
exit;
}
else
{
$msg=MSG_UPDATE_ERROR;
header("Location:businessadview.php?var_msg=$msg");
exit;
該代碼不會更新到MySQL表,我不知道爲什麼。
什麼先於上面的代碼看起來像這樣
<form name="frmadd" method="post" action="businessadadd_a.php" enctype="multipart/form-data">
<input type="hidden" name="action" value="<?=$action;?>">
<input type="hidden" name="iBusAdID" value=<?=$iBusAdID;?>>
檢查我的服務器錯誤日誌,發現這一種形式。它提到了globals.php中的一些錯誤,這是包含調用的一部分。我也會包括包含代碼。
這裏是包括代碼
<?php
@session_start();
@ob_start();
include_once("./lib/db_config.php");
include_once("./lib/myclass.php");
include_once("./lib/globals.php");
if(!isset($obj)){
$obj = new myclass($SERVER,$DBASE,$USERNAME,$PASSWORD);
}
include_once("./lib/generalsettings.php");
include_once("./function/general.php");
include_once("./lib/messages.php");
getGeneralVar();
?>
這裏是globals.php代碼服務器錯誤日誌有一個問題與
<?php
$glob=array("SERVER");
if(isset($GPC_vars))
{ foreach($GPC_vars as $var)
{ foreach(array("GET","POST","COOKIE") as $avar)
if(isset($GLOBALS["HTTP_".$avar."_VARS"][$var]))
{ $$var=$GLOBALS["HTTP_".$avar."_VARS"][$var];
}
}
}
else
{ $glob=array_merge(array("GET","POST","COOKIE"),$glob);
}
foreach($glob as $avar)
{ $arr=$GLOBALS["HTTP_".$avar."_VARS"];
foreach($arr as $var => $res)
$$var=$res;
}
foreach ($HTTP_POST_FILES as $name => $value) {
$$name = $value["tmp_name"];
foreach($value as $k=>$v) {
$varname_ = $name."_".$k;
$$varname_ = $v;
}
}
reset($HTTP_POST_FILES);
?>
這裏是什麼錯誤日誌說
[Mon Mar 14 13:08:55 2011] [error] [client - ]文件不存在:/public_html/favicon.ico
[Mon Mar 14 13:08:54 2011] [錯誤] [客戶端 - ] PHP警告:reset()[function.reset]:通過變量不是數組或對象在/public_html/lib/globals.php在線30,referer:xxx.com/admin/businessadadd.php?iBusAdID=4 & action = Update
[Mon Mar 14 13:08:54 2011] [error] [client - ] PHP警告:提供了無效參數foreach()in .../public_html/lib/globals.php on line 23,referer:xxx.com/admin/businessadadd.php?iBusAdID=4 & action = Update
[Mon Mar 14 13:08: 54 2011年] [錯誤] [客戶端 - ] PHP警告:無效參數爲foreach()在.../public_html/lib/globals.php第19行,referer:xxx.com/admin/businessadadd.php?iBusAdID= 4 & action = Update
[Mon Mar 14 13:08:54 2011] [error] [client - ] PHP警告:在.../public_html/lib/globals.php中爲foreach()提供了無效參數19,referer:xxx.com/admin/businessadadd.php?iBusAdID=4 & action = Update
[Mon Mar 14 13:08:54 2011] [error] [client - ] PHP警告:提供了無效參數foreach()in .../public_html/lib/globals.php on line 19,referer:xxx.com/admin/businessadadd.php?iBusAdID=4 & action = Update
[Mon Mar 14 13:08: 54 2011年] [錯誤] [客戶端 - ] PHP警告:無效參數爲foreach()在.../public_html/lib/globals.php on line 19,referer:xxx.com/admin/businessadadd.php?iBusAdID=4 & action = Update
你在sql上調用了mysql_query嗎?你打電話給mysql_connect了嗎? – 2011-03-14 00:44:24
PHP 5改變了GET/POST/etc變量寫入REQUEST超級全局的順序。在查詢字符串和表單提交中是否有重複的變量?另外,我會把所有這些變量替換放在字符串之外(比如最後一個iBusAdID),並且顯然會確保數據被驗證/清理。 – Fosco 2011-03-14 00:48:05
這裏有很多未知的東西。你有沒有檢查數據庫有一個名爲businessad的表?你如何連接到數據庫?是否有與數據庫的連接?數據庫中列出了所有的字段嗎?如果任何字段不完全如何在數據庫中,那麼這也可能導致問題... – Jason 2011-03-14 01:15:12