为什么此代码无效($ artInfo2 [' phoneState']的值为1):
if($artInfo2['phoneState']==1)
{
$bdd->prepare("UPDATE `articulos` SET `telVisto` = `telVisto` + 1 WHERE `ID` ='".$_GET['id']."' ");
$verPorTodos=$salerInfo2['phone'];
}
我使用的PDO连接功能很好,因为它适用于其他查询。这是我在页面顶部使用的数据库连接 :
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=lacajota', 'root', '', $pdo_options);
是的,我希望每次运行代码时更新 telVisto 递增1。
谢谢
答案 0 :(得分:0)
第1步:清理您的输入。永远不要将查询与$_GET['something']
连接起来,因为我可以像这样删除整个数据库
第2步:正确处理错误
第3步:prepare()
不执行查询。它返回一份准备好的声明。 http://php.net/manual/en/pdo.prepare.php您仍然需要执行它。
$stmt = $bdd->prepare("UPDATE `articulos` SET `telVisto` = `telVisto` + 1 WHERE `ID` =:id ");
$stmt->execute(array(':id' => $_GET['id']));
步骤4.如果没有任何效果,您是否可以检查是否有更新行?查询
SELECT * FROM `articulos` WHERE `ID` = (insert your ID here manually)
什么都归还?也许问题是你没有使用正确的数据?
答案 1 :(得分:-1)
你做错了是你把旧的telVisto作为字符串传递(telVisto =' 5' +1),你不能在字符串中添加一个数字。 ;)
并检查列名称' ID'是大写字母或小写字母。