作者sktdeity (阿仲)
看板PHP
標題[請益] $_GET可接值更新 , $_POST可接值不能更新
時間Mon Sep 24 11:40:17 2012
如題 , 我稍微敘述我的情況
有兩個頁面 , 送值及傳值 test.php , tests.php (這裡都用php比較順)
/////////////
假設有個表單 , mio.php 內存連資料庫的語法 ,
test.php 內容如下 :
/////////////////////////
<form>
<form action='tests.php' method='POST'>
<table border='1'>
<input type='text' name='t1'/> <?php //假設輸入值為andy?>
<input type='text' name='t2'/> <?php //假設輸入值為sandy?>
<input type='submit' value='送出'/>
</table>
</form>
</form>
/////////////////////////
tests.php 內容如下 :
/////////////////////////
<?php include 'mio.php';//引入連資料庫檔案?>
<?php
$t1 = $_POST["t1"]; //假設接收值為 andy
$t2 = $_POST["t2"]; //假設接收值為 sandy
$sql = "update `test` set `test1`='$t1' , `test2`='$t2' where `id`='2' ";
mysql_query($sql);
?>
/////////////////////////
資料表名稱為 test , 欄位為 id , test1, test2
id test1 test2
1 tx1 tc1
2 tx2 tc2
3 tx3 tc3
4 tx4 tc4
5 tx5 tc5
/////////////////////////
更新資料庫後 於 id = 2 這筆資料應該為 :
//////////////////
id test1 test2
2 andy sandy
//////////////////
*******問題*******
但是不知什原因 , 於sql 語法接值的 '$t1' 居然失效 ,
''單引號用途取消掉 , 所以導致sql無法更新成功 .
已確定$_POST['']; 有接到值 , 並且echo 出 .
但是我將test.html method改成GET方式 ,
`test1`='$t1' 就成功更新 .
先前擔心因為是字串的問題所以改成 `test1`='".$t1."' , 不過情況還是一樣 ,
在上星期二時 都還沒問題 , 我有嘗試將防毒停用 , 上星期五測試突然可以 ,
但今天又失敗 , 導致整個系統的POST值都無法更新 ,
不知道是否在更新防毒軟體時, 剛好將PHP 的POST UPDATE 功能關閉 , 導致
'' 無法啟用 , 因為假如一般無啟用的狀態 ,
我使用
$sql = "update `test` set `test1`=$t1 , `test2`=$t2 where `id`='2'";
mysql_query($sql);
是可以成功更新 , 但萬一我的值不是"andy" , 而是 "andy," 就沒辦法 ,
sql 會識別成 update test set test1=andy, , test2 = sandy where id=2;
這樣有兩個逗號 , 會更新失敗 .
*******************
不知道是否為php.ini 設定被關閉的問題 ?
拜託了 !!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.7.28
※ 編輯: sktdeity 來自: 220.135.7.28 (09/24 11:42)
1F:推 CaptainH:把mysql_error()印出來看看 09/24 11:49
2F:→ chrisQQ:同樓上,順便把 sql dump 出來看看 09/24 11:58
3F:→ sktdeity:mysql_error() 沒出現錯誤 !! 09/24 12:45
4F:→ kerash:過濾的問題先不提,sql 的變數改 '{$t1}' 09/24 17:07
5F:→ sktdeity:測試$_POST 有接收到值 , 更新也有跑 , 但資料庫沒變動 ! 09/24 18:04
6F:→ pkwbim:建議SQL用prepared statements,這可以減少很多問題 09/24 18:50
8F:→ sktdeity:經昨天測試結果 , IE 可以正常更新 , GOOGLE 卻不行 !! 09/25 09:26
9F:→ kerash:如果都是 server 端的程式,那就跟 browser 無關 09/25 10:41
10F:→ kerash:你把 html 的部分用 雙引號包吧 (雖然應該沒差..) 09/25 10:42
11F:→ MOONRAKER:chrome有些神秘的毛病 非常整人 別人卻都說沒問題 >(=) 09/25 11:27
12F:→ sktdeity:我是不知道動到什程式 , html用雙引號也是 , google先前 09/25 14:46
13F:→ sktdeity:還正常說 , 結果一不正常還找不出原因 =.= 09/25 14:47