PHP&;MySQL-数组到字符串转换错误问题
在下面列出的这一行中,我不断收到一个关于PHP&;MySQL-数组到字符串转换错误问题,php,mysql,Php,Mysql,在下面列出的这一行中,我不断收到一个关于数组到字符串转换错误的错误消息。我如何解决这个问题 $skill = explode('', $_POST['skill']); 下面是PHP&MySQL代码 $skill = explode('', $_POST['skill']); $experience = explode('', $_POST['experience']); $years = explode('', $_POST['years']); for ($s = 0; $s <
数组到字符串转换错误的错误消息。我如何解决这个问题
$skill = explode('', $_POST['skill']);
下面是PHP&MySQL代码
$skill = explode('', $_POST['skill']);
$experience = explode('', $_POST['experience']);
$years = explode('', $_POST['years']);
for ($s = 0; $s < count($skill); $s++){
for ($x = 0; $x < count($experience); $x++){
for ($g = 0; $g < count($years); $g++){
if (mysqli_num_rows($dbc) == 0) {
$mysqli = mysqli_connect("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"INSERT INTO learned_skills (user_id, skill, experience, years, date_created)
VALUES ('" . $user_id . "', '" . $skill[$s] . "', '" . $experience[$x] . "', '" . $years[$g] . "', NOW())");
}
if ($dbc == TRUE) {
$dbc = mysqli_query($mysqli,"UPDATE learned_skills
SET skill = '$skill', experience = '$experience', years = '$years', date_created = NOW()
WHERE user_id = '$user_id'");
echo '<p class="changes-saved">Your changes have been saved!</p>';
}
if (!$dbc) {
print mysqli_error($mysqli);
return;
}
}
}
}
$skill=explode(“”,$_POST['skill']);
$experience=explode(“”,$_POST['experience']);
$years=爆炸(“”,$_POST['years');
对于($s=0;$s您的更改已保存!”;
}
如果(!$dbc){
打印mysqli_错误($mysqli);
返回;
}
}
}
}
下面是HTML代码
<li><label for="skill">Skills: </label><input type="text" name="skill[]" id="skill[]" size="25" maxlength="255" />
<label for="experience">Experience: </label>
<?php
echo '<select id="experience[]" name="experience[]">' . "\n";
foreach($experience_options as $option) {
if ($option == $experience) {
echo '<option value="' . stripslashes(htmlentities(strip_tags($option))) . '" selected="selected">' . stripslashes(htmlentities(strip_tags($option))) . '</option>' . "\n";
} else {
echo '<option value="'. stripslashes(htmlentities(strip_tags($option))) . '">' . stripslashes(htmlentities(strip_tags($option))) . '</option>'."\n";
}
}
echo '</select>';
?>
<label for="years">Years: </label>
<?php
echo '<select id="years[]" name="years[]">' . "\n";
foreach($year_options as $option) {
if ($option == $years) {
echo '<option value="' . stripslashes(htmlentities(strip_tags($option))) . '" selected="selected">' . stripslashes(htmlentities(strip_tags($option))) . '</option>' . "\n";
} else {
echo '<option value="'. stripslashes(htmlentities(strip_tags($option))) . '">' . stripslashes(htmlentities(strip_tags($option))) . '</option>'."\n";
}
}
echo '</select></li>';
技能:
经验:
年:
正如文档所指出的,如果分隔符为空,则始终返回FALSE。你想干什么。$\u POST['skill']
是什么样子的?我想用英语说
$skill = explode('', $_POST['skill']);
$\u POST['skill']
是一个数组explode()
的第二个参数需要一个字符串,或者我认为它可以转换为字符串。如果您试图使用空字符串变量进行拆分,可能也会让您头疼
我也知道这一点,因为输入字段的名称是skill[]
PHP将把任何末尾带有[]
的名称转换为数组。您甚至可以在括号之间指定所需的键
因此,您可能可以跳过该行,因为变量已经是数组了。如果不希望它是数组,请从name属性中删除[]
。在此文本表单元素中:
<label for="skill">Skills: </label>
<input type="text" name="skill[]" id="skill[]" size="25" maxlength="255" />
用户提供的技能是否应该用逗号分隔?如果是这样,也许这就是你想要的
$skill = explode(',', $_POST['skill']);
希望这有帮助 你能发布一个显示skill
元素的表单片段吗?
$skill = explode('', $_POST['skill']);
$skill = explode(',', $_POST['skill']);