作者lazyhome (Hava A Nice Day)
看板PHP
标题Re: [请益] 一个简单的语法请问 谢谢
时间Sat Apr 23 14:48:54 2011
※ 引述《goodtau (goodtau)》之铭言:
: 不好意思打扰了
: if($_POST["comm"] == "推荐此店家" and $oldip!=$ip or $sec>$oldsec+600){
: $sSql="UPDATE `store` SET `store_recommend` = 'store_recommend+1' WHERE
: `store_phone`='$p'";
: $result=mysql_query($sSql,$link);
: }
: 我想要做一个按了推荐按钮
: 然後资料表内的推荐数就会+1
: 我翻了好几本书
: 还是不知道为什麽我这样写
: 推荐数没办法+1
: 麻烦请大家指教了
: 谢谢
在mysql中, 有时资料表名称或栏位名称上不小心使用到关键字的话
在sql语法中会出错
所以, 可以用`资料表`.`栏位` 来表示
以免发生错误
在此篇里
$sSql="UPDATE `store` SET `store_recommend` = 'store_recommend+1' WHERE
`store_phone`='$p'";
`store_recommend` = 'store_recommend+1'
`store_recommend` 是栏位名称 = 'store_recommend+1' <--这就是字串了
不管在PHP或是SQL语法里, 用'(单引号)包起来的东西, 都是字串
假如 store_recommend 资料型态若是 int 时,
你若让他等於 'store_recommend+1', 会是 0
所以, 你应该改成 `store_recommend` = `store_recommend` + 1
请注意到 ` 跟 ' 的不同
另外,在使用mysql时, 请善用 mysql_error() 来除错
希望你在学PHP跟SQL语法时不要只会照着书打
要懂的他的用法,这样在学习上才有帮助!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 125.124.82.43
※ 编辑: lazyhome 来自: 122.231.232.57 (04/23 20:53)
1F:推 goodtau:我改成` `结果还是不行ㄟ....? 04/23 23:26
2F:→ skywalking:检查 store_recommend 栏位的资料型态, 要整数型态 04/24 02:56
3F:推 goodtau:是整数型态 04/24 08:49
4F:→ lazyhome:echo mysql_error($link); 看看有没有问题 04/24 09:42
※ 编辑: lazyhome 来自: 122.231.232.57 (04/24 09:42)
5F:推 goodtau:试过了 没有错误ㄟ... 04/25 00:54