繁体   English   中英

PHP再次为SQL查询设置变量值不起作用

[英]PHP set variable value again for sql query not working

您好,我的问题很简单,但我不明白为什么会这样工作。

当我一次设置了varialbe $ query之后,再次设置它不起作用。 仅当对变量使用其他名称时,例如$ query2,它才有效。

作品:

$connect = mysql_connect("","","") or die(mysql_error());
mysql_select_db("");
$query = "select post_title,id from wp_posts where post_status='publish'";
$result = mysql_query($query);
while($row = mysql_fetch_row($result))
{
WHILE 1
$query2 = "SELECT meta_key FROM `wp_postmeta` WHERE post_id='$id'";
$result2 = mysql_query($query2);
while($row2 = mysql_fetch_row($result2))
{
WHILE 2
}
}

无效:

$connect = mysql_connect("","","") or die(mysql_error());
mysql_select_db("");
$query = "select post_title,id from wp_posts where post_status='publish'";
$result = mysql_query($query);
while($row = mysql_fetch_row($result))
{
WHILE 1
$query = "SELECT meta_key FROM `wp_postmeta` WHERE post_id='$id'";
$result = mysql_query($query);
while($row2 = mysql_fetch_row($result))
{
WHILE 2
}
}

您不仅要更改$query变量,还要更改$result 这是你的while ,搞砸了第一个结果集。 您只需要分配一个新的结果集。

这将起作用:

$query = "select post_title,id from wp_posts where post_status='publish'";
$result = mysql_query($query);
while($row = mysql_fetch_row($result))
{
   WHILE 1
   $query = "SELECT meta_key FROM `wp_postmeta` WHERE post_id='$id'";
   $result2 = mysql_query($query);
   while($row2 = mysql_fetch_row($result2))
   {
      WHILE 2
   }
}

$result是代表查询结果的HANDLE。 您的第二个查询将覆盖第一个查询的结果,从而有效地杀死第一个查询的结果:

$result = mysql_query($query1);
while($row = mysql_fetch_row($result)) {
    $result = mysql_query(...);
    ^^^^^^^---- overwrite occurs here

您运行查询1,开始循环,运行查询2。 该查询的结果替换了第一个查询的结果,并且完全由内部while()循环使用。 当内部循环完成并且控制权返回到外部循环时,此新的$result句柄中没有更多数据,因此外部循环也终止。

这是因为您在片刻内使用,这意味着您第二次使用:

$result = mysql_query($query);
while($row2 = mysql_fetch_row($result))

将覆盖您的第一个$result

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM