gpt4 book ai didi

php - PHP脚本中的增量值不起作用

转载 作者:行者123 更新时间:2023-11-29 04:05:57 25 4
gpt4 key购买 nike

我有以下 PHP 脚本来更新数据库中的博客 View

<?php   include('header.php');  ?>
<?php
$article_id = $_POST['article'];
// echo $article_id;
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'password';
$con = mysql_connect($dbhost, $dbuser , $dbpass);
$sql = 'SELECT id,blog_title, blog_body, views FROM tinyblog where id="'. $article_id .'" ';
// UPDATE VIEWS.
mysql_query("UPDATE tinyblog SET views = views + 1 WHERE id = {$article_id}" , $con );
mysql_select_db('tinyblog');
$retval = mysql_query( $sql, $con );

if(! $retval ) {
die('Could not get data: ' . mysql_error());
}

while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
?>

<div class="article-blog-indiv">
<?php
echo '<h1>'. $row['blog_title'] .'</h1>';
echo '<p>'. $row['blog_body'] .'</p>';
?>
</div>
<?php
}
?>
<?php include('footer.php'); ?>

实际上是下面这行代码更新了我数据库中的 View 字段:

mysql_query("UPDATE tinyblog SET views = views + 1 WHERE id = {$article_id}" , $con );

现在这行代码似乎不起作用,因为每次我返回并检查 phpmyadmin 时,我看到 View 字段仍然是 0 ,但是当我插入以下语句时直接用于测试我的 phpmyadmin:

mysql_query("UPDATE tinyblog SET views = views + 1 WHERE id = 1);

我看到 View 字段增加了,为什么会这样??

最佳答案

一些需要修复的东西。首先,当您应该使用 mysqli 或 PDO 时,您使用的是 mysql。其次,您使用的是发布数据,根本没有任何转义。第三,您不需要此选择和更新。您可以在一条语句中完成。

$query = "UPDATE tinyblog SET views = views + 1 WHERE id = (SELECT id FROM tinyblog where id=:article)"
$db = new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password');
$stmt = $db->prepare($query);
$stmt->execute(array(":article"=>$article_id));

我们在这里所做的是创建一个带有一个占位符的准备好的语句。我们将其命名为 :article,但也可以保留为 ?

然后当执行查询时,您需要通过传入参数来填充缺失的位。这就是我们在最后一步中使用 array(":article"=>$article_id)

所做的

因为它是一个命名参数,所以我们使用关联数组。或者,如果您调用了 bindParam,则可以不带任何参数调用 execute。首先。

关于php - PHP脚本中的增量值不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40573476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com