php更新sql和查询
问题描述:
我想在php中做一个查询,在页面上输出数据,然后在数据库中修改它。php更新sql和查询
我该怎么做?
目前,我不喜欢这样,但它没有作用:
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM pics WHERE id = '$id'";
$result = $conn->query($sql);
// output data of each row
while($row = $result->fetch_assoc()) {
$dir = $row["dir"];
$likes = $row["likes"];
}
$sqlq = "UPDATE pics SET likes='$likes+1' WHERE id='$id'";
$conn->query($sqlq);
$conn->close();
但类似剂量不添加到数据库中。
答
如果您呼应$ sqlq出使用
echo $sqlq;
,你会看到'$likes+1'
没有做你的期望。
你真的可以做
$sqlq = "UPDATE pics SET likes=likes+1 WHERE id='$id'";
从而消除两个用户在德同时覆盖彼此更新数据库的任何风险,简化它。
但是你应该真的使用“参数化查询”来解决所有问题(并且可能会更安全)。检查手册中的示例http://php.net/manual/en/mysqli-stmt.bind-param.php
+0
谢谢!现在它工作了! –
+0
不客气。如果您采取了“快速修复”的措施,请花费5分钟后查看参数化查询(bind-param)链接,以使您的代码更安全,更易于读取/调试。 – Robbie
以何种方式失败? PHP日志中是否有错误?你为什么不检查数据库查询中的错误? – David
您的更新失败 –
没有错误日志。一切正常,只是当我查看数据库时,喜欢的值不会被修改。而且它在页面上也没有修改。 –