如何使用PHP将这些相同的变量名保存到mySQL列中

时间:2016-03-06 15:40:48

标签: php mysql

如何保存以下

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:)

3 个答案:

答案 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版本中甚至不再存在。)