2011-01-28 75 views
0

在笨我想知道这个脚本中发生了什么?有什么不同?

$confirm=$this->video->videoupdate(any values);// Here i am just updating my database 
if($confirm) 
echo "<script>window.location='index';</script>"; 


$this->video->videoupdate(any values);// Here i am just updating my database 
echo "<script>window.location='index';</script>"; 

ü可以给我解释一下细节家伙...

是它必须检查这种状况呢?

+1

这个问题似乎是这个问题的转贴/小修改,以防它提供一个答案:http://stackoverflow.com/questions/4817482/my-redirect-function-is-not-working-in -codeignitor – kevtrout 2011-01-28 13:04:43

回答

0

在第一种情况下,如果记录成功更新,脚本会重定向。

在第二种情况下无关紧要记录它会一直重定向。

+0

感谢您的人shakti – 2011-01-28 13:20:05

6

在第一个例子要设置一个可变$confirm其中(I假设)要么是true或基于更新是否成功,然后重定向如果它false。在第二个示例中,无论更新是否成功,您都将重定向。

+0

oh k。$ this-> video-> videoupdate(any values); //这里我只是更新我的数据库 echo“”;我认为php应该在更新完成后进入重定向语句。 – 2011-01-28 10:25:23

+0

感谢马特阿斯伯里 – 2011-01-28 13:21:10

0
// example 1 
$confirm=$this->video->videoupdate('any values'); 
if($confirm) 
{ 
    echo "window.location='index';"; 
} 

// example 2 
$this->video->videoupdate('any values'); 
echo "window.location='index';"; 

您的videoupdate方法将返回一个值。一般你会返回truefalse,但也可以返回数据。在例子之一中,您将语句的结果分配给$confirm

if $confirm is true then the condition will be executed。请注意,除非将$ confirm明确设置为false,否则任何值都将计算为true,因此该条件始终为真。

一个更好的选择是要做到:

if($confirm==true) 
{ 
    // redirect 
} 
else 
{ 
    // something else has happened 
} 

这个逻辑可以被用来控制应用程序的一个错误的结果的流程,例如,或查询的失败。

在第二个示例中,echo语句会发生,无论结果如何,但可能会导致意外的行为 - 查询是否成功。