Php MySQL如何更新/插入数据库行

时间:2016-01-27 01:01:49

标签: php mysql

表-A

+--------+-----------+---------+
|   id   |   name    |  views  |
+--------+-----------++--------+
|   num  | text      |   int   |
+--------+-----------+---------+
|    1   | Video 1   |  10     |
|  NULL  | NULL      |  0      |
|  NULL  | NULL      |  0      |
|  NULL  | NULL      |  0      |
|  NULL  | NULL      |  0      |
+--------+-----------+---------+

<a href="video.php?id=video1&idtitle=Hello%20Video1"> 
<a href="video.php?id=video2&idtitle=Hello%20Video2">
<a href="video.php?id=video3&idtitle=Hello%20Video3">

我正在尝试让脚本做这样的事情。

1.用户点击链接
2.User在video.php上?id = video1
3.Mysql然后在我的id列#1中添加+1 4.然后从$ videoName中获取视频标题 5.Mysql获取$ videoname中的标题并将其存储在名称列#2
上 6.Mysql然后每次ID 1为视图时向视图添加+1 7.Mysql现在以第1行结束 8.如果video.php?id = video2等等,现在Mysql将重复相同的步骤,

我怎样才能实现这一目标?

  $id = $_GET['id'];
  $videoName = $_GET['idtitle'];
  $pdo = new PDO('mysql:localhost;dbname=videocount', 'root', '');
  $userip = $_SERVER["REMOTE_ADDR"];

  if($userip){
  $pdo->query("UPDATE Table_A SET (`id`, `name`, `views`)
  VALUES (NULL,$videoName, views+1)");
  }

我也尝试下面的代码,但仍然没有运气。

  if($userip){
  $pdo->query("INSERT INTO `videocount`.`Table_A` (`id`, `name`, `views`)
  VALUES (NULL, '$videoname', 'views'+1)");
  }

2 个答案:

答案 0 :(得分:2)

UPDATE代替UPDATEDVALUES代替VALUE。此外,您必须在查询中添加WHERE条件,以选择要更新的记录。

这是另一种正确的语法:

$pdo->query( "UPDATE `Table_A` SET `views`=`views`+1 WHERE `id`='$id'" );

编辑:

要更新视频名称,您可以执行此查询:

$pdo->query( "UPDATE `Table_A` SET `name`='{$videoName}', `views`=`views`+1 WHERE `id`='$id'" );

在边框上,您应该绑定变量值以避免标题特殊字符出错。

详细了解bindingMySQL UPDATE syntax

答案 1 :(得分:1)

我认为数据视图逻辑存在一些混淆。

首先,您需要将所有数据保存到数据库中,然后将其列为用户。 使用时点击链接查看此视频,views列需要更新。