首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将临时值存储在会话数组中以在mysql查询中使用

将临时值存储在会话数组中以在mysql查询中使用
EN

Stack Overflow用户
提问于 2012-06-29 18:02:35
回答 2查看 216关注 0票数 0

我有一个需要用id列表更新的视图,所以我将选择从视图中删除的值存储在一个会话变量中,该变量随后进入mySQL查询,如下所示。然后,当表单被重置时,这些值也会被重置出数组。

但它不起作用。这就是我得到的。

任何帮助都将不胜感激。

代码语言:javascript
复制
if($_POST['flag']=='flag'){

    //collect deleted rows
    $_SESSION['delete-row'][] = $_POST['idval'];

    //Split session array

    $idavls = join(',' , $_session['delete-row'];



    $sqlDelete = "CREATE OR REPLACE VIEW filtetbl AS SELECT * FROM `".$page['db-name']."`.`leads_tbl` WHERE ".$_SESSION['filter-view']." AND `lead_status` = '1' AND `lead_id` NOT IN (".$idvals.") ORDER BY `lead_added`";


    $result = mysql_query($sqlDelete);

    if($result){

        echo true;
        }
        else{

            echo mysql_error();


        }

        }
EN

回答 2

Stack Overflow用户

发布于 2012-06-29 18:21:07

首先,$_session和$_SESSION是不一样的。

也不要使用mysql_query或类似的(因为它不安全)使用PDO

票数 0
EN

Stack Overflow用户

发布于 2012-06-29 19:06:55

如果没有更多的信息,这是很难纠正的(而且有几个错误- probaby剪切和粘贴),所以我将一个接一个地拆分,你可以从那里开始。

1-$_SESSION‘’delete row‘=$_POST’‘idval’;

如果'idval‘来自多个输入(即)那么它已经是一个数组了,你应该有$_SESSION‘’delete row‘=$_POST’‘idval’;如果你是在一个输入数组中循环(例如,试图从许多帖子中追加,那么它就是正确的)

2- $idavls = join(',‘,$_session’‘delete row’;

$_SESSION (你说这是一种类型),你还需要一个括号/bract作为结尾

    • $sqlDelete = "CREATE OR REPLACE VIEW filtetbl SELECT * FROM SELECT WHERE“.$_".$page['db-name']."leads_tbl-view’.”AND lead_status = '1‘AND lead_id NOT IN (".$idvals.") ORDER BY lead_added";

首先,正如allen213指出的那样,这是非常不安全的。即使您不使用PDO来确保变量的安全,也请将所有输入强制转换为(int) (假设in为整数),或者至少将输入包装在mysql_real_escape_string()中。

其次,问题中的逻辑不太合理。您说您想要从视图中删除ID,但您所做的是重新创建视图,其中只删除了$_SESSION‘’delete row‘中的那些IDs因此这可能会重新引入以前从视图中删除的ID。实际上,您需要保留$_SESSION‘’delete row‘并不断添加,以确保下次创建视图时,所有的ID都会被删除。

我希望这能有所帮助。如果没有,可能需要更多的代码(例如,你使用的发送数据的表单,任何其他影响会话的表单等)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11259802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档