首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP多选择格式发送字符串到不按预期工作的数据库

PHP多选择格式发送字符串到不按预期工作的数据库
EN

Stack Overflow用户
提问于 2016-04-26 08:12:02
回答 1查看 59关注 0票数 0

我试图发送一个字符串到我的数据库,这取决于来自多个选择问题的答案。这个问题有三个答案,ESEA,FACEIT和婚介。根据答案,我想向我的数据库发送字符串。数据库是用Varchar建立的。

用于处理多个选择问题的html表单如下所示:

代码语言:javascript
复制
<select name="multipleSelect[]" multiple>
   <option value="" disabled selected>Choose your option</option>
   <option name="esea" value="esea">ESEA</option>
   <option name="faceit" value="faceit">FaceIT</option>
   <option name="matchmaking" value="matchmaking">Matchmaking</option>
</select>
<label>What are you looking to play?</label>

处理表单的代码如下所示:

代码语言:javascript
复制
$esea = '';
$faceit = '';
$matchmaking = '';
foreach ( $_POST['multipleSelect'] as $value ) {
    if ( $value == 'esea' )        { $esea = 'ESEA';  }
    if ( $value == 'faceit' )      { $faceit= 'FACEIT';      }
    if ( $value == 'matchmaking' ) { $matchmaking= 'Matchmaking'; }
}  

然后我像这样把它发送到我的数据库:

代码语言:javascript
复制
$sql = "INSERT INTO users ( profilename,region, age, ranks, esea, faceit, matchmaking, textarea1 ) VALUES ( 
'{$mysqli->real_escape_string($_POST['profilename'])}',
'{$mysqli->real_escape_string($_POST['region'])}',
'{$mysqli->real_escape_string($_POST['age'])}',
'{$mysqli->real_escape_string($_POST['ranks'])}',
$esea,
$faceit,
$matchmaking,
'{$mysqli->real_escape_string($_POST['textarea1'])}')";


$insert = $mysqli->query($sql);

不幸的是,这段代码不起作用。它只发送其余的值,但不发送来自multipleSelect问题的字符串。我不知道我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-26 08:21:36

由于这些字段是VARCHAR,因此需要将它们的值用如下的引号包装,这适用于MYSQL表中使用的任何文本类型数据类型。

代码语言:javascript
复制
$sql = "INSERT INTO users ( profilename,region, age, ranks, esea, faceit, matchmaking, textarea1 ) VALUES ( 
        '{$mysqli->real_escape_string($_POST['profilename'])}',
        '{$mysqli->real_escape_string($_POST['region'])}',
        '{$mysqli->real_escape_string($_POST['age'])}',
        '{$mysqli->real_escape_string($_POST['ranks'])}',
        '$esea',
        '$faceit',
        '$matchmaking',
        '{$mysqli->real_escape_string($_POST['textarea1'])}')";


$insert = $mysqli->query($sql);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36859032

复制
相关文章

相似问题

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