我试图发送一个字符串到我的数据库,这取决于来自多个选择问题的答案。这个问题有三个答案,ESEA,FACEIT和婚介。根据答案,我想向我的数据库发送字符串。数据库是用Varchar建立的。
用于处理多个选择问题的html表单如下所示:
<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>处理表单的代码如下所示:
$esea = '';
$faceit = '';
$matchmaking = '';
foreach ( $_POST['multipleSelect'] as $value ) {
if ( $value == 'esea' ) { $esea = 'ESEA'; }
if ( $value == 'faceit' ) { $faceit= 'FACEIT'; }
if ( $value == 'matchmaking' ) { $matchmaking= 'Matchmaking'; }
} 然后我像这样把它发送到我的数据库:
$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问题的字符串。我不知道我做错了什么?
发布于 2016-04-26 08:21:36
由于这些字段是VARCHAR,因此需要将它们的值用如下的引号包装,这适用于MYSQL表中使用的任何文本类型数据类型。
$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);https://stackoverflow.com/questions/36859032
复制相似问题