Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Can';t更新然后在SQL中插入_Php_Sql - Fatal编程技术网

Php Can';t更新然后在SQL中插入

Php Can';t更新然后在SQL中插入,php,sql,Php,Sql,我试图编写PHP代码来更新一个存在的值,如果它不存在,则插入它。此函数的一部分工作,即插入部分,但更新似乎不起作用。我的代码如下: <?php $id = $_GET['Track']; $user = $_GET['User']; $rating = $_GET['Rating']; include("connect.php"); $query = "UPDATE `rating` SET `rating` = '$rating' WHERE track_id = '$id' AND u

我试图编写PHP代码来更新一个存在的值,如果它不存在,则插入它。此函数的一部分工作,即插入部分,但更新似乎不起作用。我的代码如下:

<?php
$id = $_GET['Track'];
$user = $_GET['User'];
$rating = $_GET['Rating'];
include("connect.php");
$query = "UPDATE `rating` SET `rating` = '$rating' WHERE track_id = '$id' AND user_id = '$user' AND rating_set=NOW()";
$sth = $dbc->query($query);
$rows = $sth->rowCount();  

if ($rows == 0) {
$query = "INSERT INTO rating values ('$id','$rating','$user',NOW())";
$results = $dbc->query($query); 
$rows = $results->rowCount(); 
}

/* output in necessary format */

header('Content-type: application/json; charset=utf-8');
echo $_GET['onJSONPLoad'];
echo "(" . json_encode($rows) . ")";


$dbc = null;
?>

您的更新查询无法工作


您仅在
评级设置
正好是
NOW()的情况下更新数据。
。这很可能不适合任何数据记录。您可能只想使用日期部分。

您在更新查询中使用的是NOW(),它给出了当前时间。这将永远不会是一样的!!!尝试从更新查询中删除“..”和rating_set=NOW()。

insert replae/insert。。。在重复密钥更新时,什么数据类型具有
rating\u set
rating\u set
很可能是这里的错误,因为您试图按当前时间匹配它,我非常确定插入的时间与当前时间不同,因此您从未获得匹配。是否尝试执行此操作:
$query=“更新rating set rating='$rating',rating\u set=NOW()其中track_id='$id'和user_id='$user'
如果您使用了所有选项,那么当查询被更新时,我如何节省时间?@KernElliott:您应该使用NOW()来设置数据,但是您可以将其放在
where
子句中,以筛选要更新的数据。然后,我如何在更新查询时节省时间?在原始更新查询中,您只更新“评级”字段。您不是在更新“评级集”,而是在“where”子句中使用它。您应该像….那样编写更新查询。。。。。“更新
rating
SET
rating
='$rating',
rating\u SET
=NOW(),其中track\u id='$id'和user\u id='$user'”