使用PDO增加My​​Sql查询中的值

时间:2016-07-03 00:50:31

标签: php mysql sql pdo

为什么此代码无效($ 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。

谢谢

2 个答案:

答案 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'是大写字母或小写字母。