首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么这个PHP脚本只返回数字6?

为什么这个PHP脚本只返回数字6?
EN

Stack Overflow用户
提问于 2011-05-15 01:59:54
回答 5查看 92关注 0票数 2

这个脚本应该是从Mysql中获取当前的流行度,在这个数字上加上一个数字,然后更新它。但是这并没有发生,它只返回'6‘,你知道为什么吗?

来源:

代码语言:javascript
复制
<?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());

?>
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-05-15 02:06:24

您需要使用mysql_fetch_array()从第一行获取值:

代码语言:javascript
复制
 $row = mysql_fetch_array($current_pop);
 $current_pop = $row[0];

但是,您可以只使用一个SQL查询来更新pop值:

代码语言:javascript
复制
mysql_query("UPDATE likes SET pop=(pop+1) WHERE id=$like") or die ("Query failed: " . mysql_error());
票数 1
EN

Stack Overflow用户

发布于 2011-05-15 02:02:29

您必须从结果中获取这些值。使用mysql_fetch_assoc或类似的工具来完成此操作。

票数 1
EN

Stack Overflow用户

发布于 2011-05-15 02:08:06

mysql_query返回对资源的引用,而不是查询中pop字段的结果。

你需要做这样的事情...

代码语言:javascript
复制
$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。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6003787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档