如何保存以下
cv_skills=MySQL&cv_skills=HTML&cv_skills=AutoCAD
作为
MySQL,HTML,AutoCAD
进入mySQL数据库的cv_skills
列?
目前我在做implode
,但它不起作用
$cv_skills = mysql_real_escape_string(implode( ',', $_POST["cv_skills"]));
在这个问题中,我将变量显示为GET,以显示如何传递。我肯定会使用POST:)
答案 0 :(得分:0)
以当前的方式将变量传递给PHP脚本,它们将被连续覆盖。如果您将变量更改为以下
cv_skills[]=MySQL&cv_skills[]=HTML&cv_skills[]=AutoCAD
然后您可以像这样访问数据
$_POST['cv_skills'][0] == 'MySQL'
$_POST['cv_skills'][1] == 'HTML'
$_POST['cv_skills'][2] == 'AutoCAD'
答案 1 :(得分:0)
首先,您需要更改传递cv_skills
变量的方式。更改为数组,例如cv_skills[]=HTML&cv_skills[]=AutoCAD;
等。
我建议使用json_encode($_POST['cv_skills'])
以完全相同的名称保存它。然后将其传递给数据库。
答案 2 :(得分:0)
如果要重复使用字段名称,则无法从PHP超级全局中获取值。相反,您需要手动解析请求正文。
您可以从'php://input'
包装器 [reference]中读取原始POST数据。解析字符串比较棘手;您可以使用explode()和rawurldecode()的组合。
关于数据库,解释如何与MySQL交互超出了本网站的范围。我只能建议您查看How can I prevent SQL-injection in PHP并获得一本合理的新书(mysql_real_escape_string()
在最新的PHP版本中甚至不再存在。)