这个脚本应该是从Mysql中获取当前的流行度,在这个数字上加上一个数字,然后更新它。但是这并没有发生,它只返回'6‘,你知道为什么吗?
来源:
<?php
include_once("../scripts/config.php");
$url = mysql_real_escape_string($_POST['url']);
preg_match("/id=(\\d+)/", $url, $matches);
$like = $matches[1];
$current_pop = mysql_query("SELECT pop FROM likes WHERE id=$like") or die ("Query failed: " . mysql_error());
$one = '1';
$pop = $current_pop + $one;
print $pop;
$update = mysql_query("UPDATE likes SET pop = ".$pop." WHERE id = ".$like."") or die ("Query failed: " . mysql_error());
?>发布于 2011-05-15 02:06:24
您需要使用mysql_fetch_array()从第一行获取值:
$row = mysql_fetch_array($current_pop);
$current_pop = $row[0];但是,您可以只使用一个SQL查询来更新pop值:
mysql_query("UPDATE likes SET pop=(pop+1) WHERE id=$like") or die ("Query failed: " . mysql_error());发布于 2011-05-15 02:02:29
您必须从结果中获取这些值。使用mysql_fetch_assoc或类似的工具来完成此操作。
发布于 2011-05-15 02:08:06
mysql_query返回对资源的引用,而不是查询中pop字段的结果。
你需要做这样的事情...
$result = mysql_query("SELECT pop FROM likes WHERE id=$like") or die ("Query failed: " . mysql_error());
if ($result) {
$row = mysql_fetch_assoc($result);
$current_pop = $row['pop'];
} else {
// handle error here
}您还应该在原始SQL查询中的任何变量周围使用mysql_real_esacpe_string。
https://stackoverflow.com/questions/6003787
复制相似问题