Cakephp 更新表时将返回什么值?

Cakephp 更新表时将返回什么值?,cakephp,cakephp-1.2,Cakephp,Cakephp 1.2,我正在使用cakePHP 1.26。 我试图使用以下代码行更新表: $c = "helloworld"; $q="UPDATE user SET avatar='{$c}' WHERE user_id='999999'"; $result=$this->Test->User->query($q); if($result==true){echo "success";} else{echo "failed";} 我注意到表已成功更新,但仍看到“失败”消息。 $result的值似

我正在使用cakePHP 1.26。
我试图使用以下代码行更新表:

$c = "helloworld";
$q="UPDATE user SET avatar='{$c}' WHERE user_id='999999'";
$result=$this->Test->User->query($q);

if($result==true){echo "success";}
else{echo "failed";}
我注意到表已成功更新,但仍看到“失败”消息。
$result的值似乎既不正确也不错误。


我不知道。

关于SQL的更新查询返回更新的行数。因此,它可能返回的是一个整数而不是bool。

对SQL的更新查询将返回更新的行数。因此,它可能返回的是一个整数而不是bool。

query()
返回SQL查询的结果集。你不会得到成功与失败的结果。也就是说,您可能不应该使用
query()
。这有一个函数;它被称为
saveField()
,失败时返回false

$this->Test->User->id = 999999;
$result = $this->Test->User->saveField('avatar', $c);
if ($result !== false) echo "success";
else echo "failed";
如果您坚持使用
query()。它只是执行一个SQL查询。这和你写的一样有效:

$this->query($q);
顺便说一句,
if($result==true)
是多余的,通常被认为是糟糕的形式。只要
if($result)
就可以同样工作。

query()
返回SQL查询的结果集。你不会得到成功与失败的结果。也就是说,您可能不应该使用
query()
。这有一个函数;它被称为
saveField()
,失败时返回false

$this->Test->User->id = 999999;
$result = $this->Test->User->saveField('avatar', $c);
if ($result !== false) echo "success";
else echo "failed";
如果您坚持使用
query()。它只是执行一个SQL查询。这和你写的一样有效:

$this->query($q);

顺便说一句,
if($result==true)
是多余的,通常被认为是糟糕的形式。只要
如果($result)
将以相同的方式工作。

更新表后,它将返回受影响的行号。
因此,在查询完成后,如果调用此函数“mysql\u impacted\u rows”,则会得到受影响的行,如果大于0,则表示查询已成功执行,如果为0,则更新未完成。

表更新后,将返回受影响的行数。
因此,在查询完成后,如果调用此函数“mysql\u infected\u rows”,则会得到受影响的行,如果大于0,则表示查询已成功执行,如果为0,则更新未完成。

oops!您使用的是cakephp,下面是如何执行的查询$c=“helloworld”$q=“更新用户集头像=“{$c}”,其中用户id='999999';如果($this->Test->User->query($q))回显“success”;}除了回声“失败”之外,回声“回声”倒倒倒门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门这个->测试->用户->我假设User\u id是表User中的主键,但是当您使用cakephp时,您应该将所有主键命名为id,然后您可以像这样编写查询$this->Test->User->id=99999$这个->测试->用户->设置('avatar','helloworld');如果($this->Test->User->save()){echo'success';}否则{echo'faliure';}糟糕!您使用的是cakephp,下面是如何执行的查询$c=“helloworld”$q=“更新用户集头像=“{$c}”,其中用户id='999999';如果($this->Test->User->query($q))回显“success”;}除了回声“失败”之外,回声“回声”倒倒倒门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门门这个->测试->用户->我假设User\u id是表User中的主键,但是当您使用cakephp时,您应该将所有主键命名为id,然后您可以像这样编写查询$this->Test->User->id=99999$这个->测试->用户->设置('avatar','helloworld');如果($this->Test->User->save()){echo'success';}或者{echo'faliure';}您可能是指
$this->Test->User->saveField()
。。。不管怎样,答案是肯定的。没有理由不在这里使用蛋糕的ORM。噢!你说得对,我的意思是
$this->Test->User->saveField
。正在编辑。您可能是指
$this->Test->User->saveField()
。。。不管怎样,答案是肯定的。没有理由不在这里使用蛋糕的ORM。噢!你说得对,我的意思是
$this->Test->User->saveField
。现在编辑。