2014-06-27 168 views
0

我在Yii框架中构建了一些Sql查询。Sql字符串查询不起作用

到目前为止,所有工作都很好,直到我需要将变量与字符串进行比较。

这里是我的功能与查询:

public function countCanceled() 
{ 
    $week  = Person_Event::model()->weekByDate(); 
    $week_id = $week->id; 
    $datalogin = mysqli_connect(/*connect is working fine*/); 
    $sql  = "SELECT id FROM tbl_event WHERE week_id=$week_id AND status_id='canceled'"; 
    $query  = mysqli_query($datalogin, $sql); 
    $numrows = mysqli_num_rows($query); 

    return $numrows; 
} 

现在,我很清楚有取消状态的一个事件,我跑了相同的查询在MySQL服务器,并给予1的结果,那么,为什么在Yii不起作用? (试图用“like”切换“=”,没有什么区别)

ps是的,在这种特殊情况下,我可以使用内置的Yii查询,但我有其他更复杂的查询,我需要比较字符串。 谢谢, 马克。

+0

与“8”取代8 – SkyWalker

+1

你真的确认该查询在MySQL服务器工作?为什么您使用简单mysqli_不是Yii适配器吗?另外你可以通过方法连接到数据库。看看Yii适配器是如何工作的。你可以按照模型创建quries – turson

+0

week_id工作正常,问题处于取消状态。编辑我的帖子关于Yii的查询工具 – Mark2Bra

回答

0

什么是status_id的类型如果是char,那么数据是填充到全长的空间。您可以将其更改为varchar,然后进行比较。而对于像你可以使用LIKE'取消%'

ps。抱歉,我没有足够的信誉评论... :(

最好的问候, 内博伊沙

+0

Status_id已经varchar – Mark2Bra

+0

这是在数据库和查询相同的情况下(取消与取消)?从表中选择status_id时会得到什么? –

+0

Th状态不保存英文,因此不区分大小写。我得到0,但我有1个事件被肯定取消。 – Mark2Bra