为什么此代码不起作用($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。
谢谢
最佳答案
第 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)
返回什么?也许问题是您没有使用正确的数据?
关于php - 使用 PDO 在 MySql 查询中增加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38165769/