首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从数据库语法错误填充多个select (select=true)表单

从数据库语法错误填充多个select (select=true)表单
EN

Stack Overflow用户
提问于 2014-06-05 02:34:51
回答 2查看 54关注 0票数 1

我正在使用数据库中的值填充多个select表单。我想要做的是根据我提供的数据选择一些值。我的代码有语法错误。

这是我的代码:

代码语言:javascript
复制
<?php

    $des_pos_id = $_POST['des_pos'];
    $test_tags = $_POST['test_tag_arr'];
    $test_tag=explode(',',$test_tags);

    $sql4 = "SELECT _id, score_type from test_category where sub_code='$des_pos_id'";

    $sel4 = mysqli_query($connect,$sql4);

    while($row4 = mysqli_fetch_assoc($sel4)){

        $option1 .= '<option value = "'.$row4['_id'].'"'echo in_array($row4['_id'], $test_tag) ? 'selected="true"' : null;'>'.$row4['score_type'].'</option>';

    }

    $output = "<select name='test_tags[]' id='test_tags[]' multiple>";
    $output .= $option1;
    $output .= '</select> ';

echo $output;
exit;

?>

以下是错误消息:

语法错误,/Applications/XAMPP/xamppfiles/htdocs/temp/esco-quiz/controller/script_controller.php中意外的“回波”(T_ECHO)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-05 02:52:41

正如戈登·林诺夫所言

注意:因为Echo是一个语言构造,而不是一个函数,所以不能使用变量函数调用它。手册

回波返回任何东西,所以您不能内联地使用它,就像在使用从.$row4['_id'].'"'echo in_array($row4['_id'],中删除回波一样。

您的代码容易受到sql注入的影响.使用mysqli扩展并不意味着您是安全的sql注入,您需要正确地转义/清理所有请求

所以要么使用mysqli_real_escape_string,要么使用准备好的语句(更好)

票数 1
EN

Stack Overflow用户

发布于 2014-06-05 02:39:25

我想问题是这条线:

代码语言:javascript
复制
   $option1 .= '<option value = "'.$row4['_id'].'"'echo in_array($value4['_id'], $test_tag) ? 'selected="true"' : null;'>'.$row4['score_type'].'</option>';

但我不知道你到底想要什么。也许:

代码语言:javascript
复制
   $option1 .= '<option value = "'.$row4['_id'].'"';
   echo in_array($value4['_id'], $test_tag) ? 'selected="true"' : null;'>'.$row4['score_type'].'</option>';
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24050723

复制
相关文章

相似问题

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