问我的代码资源是否很少

时间:2011-03-30 03:40:35

标签: php mysql sql

嗨,请告诉我这是否是一个资源不足的代码,如果不是,我该怎么改呢?谢谢!

$query = 'SELECT MAX(ID) as maxidpost  
            FROM wp_posts';
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)) {
  $postid = $row['maxidpost']+1;
  echo "p=$postid";

2 个答案:

答案 0 :(得分:0)

因为您要返回一行,所以您应该执行以下操作:

$query = 'SELECT MAX(ID) as maxidpost FROM wp_posts';
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_row($result);
$postid = $row['maxidpost']+1;
echo "p=$postid";

否则看起来就像你能做的一样好。
您可以在每篇帖子后重新计算帖子代码。从零开始。从数据库中选择它,使用该id,添加一个,保存回数据库 或者你可以使用自动增量(如果可能的话)。

答案 1 :(得分:0)

这种改进值得商榷,但是:

$query = 'SELECT MAX(ID) +1 as maxidpost  
            FROM wp_posts';
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)) {
  echo "p = ". $row["maxidpost"];

您可以在SQL语句中进行数学运算,从而使您不必在PHP中执行操作。

很高兴知道你正在使用它 - 如果它是下一个要插入的id,使用AUTO_INCREMENT会更安全。 SELECT语句通常比INSERT / UPDATE / DELETE具有更高的优先级,因此可以在从另一个源插入之前读取 - 这会冒重复的风险。