作者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