首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在数据库(php/MySQL)中插入一个简单的数组?

问如何在数据库(php/MySQL)中插入一个简单的数组?
EN

Stack Overflow用户
提问于 2011-02-06 15:47:25
回答 2查看 537关注 0票数 0

我正在开发一个表单,在这个表单中,用户做出一些选择,然后每个选定项目的名称都需要进入数据库中的一个表中。用户的名字可以与每个项目一起作为用户选择的标识符。选择的数量和选择的名称将更改,但数据库中的两个字段保持不变。我的问题是在insert时,我得到一个错误,没有在我发送的值中指定名称的列。它把我都给绊倒了……我不知道为什么。非常感谢您的帮助或建议。

完整代码:

代码语言:javascript
复制
<?php 

$db = mysql_connect('localhost', 'root', 'root') or die(mysql_error());
mysql_select_db('reflex') or die(mysql_error());

$name_array = array('harp1','harp2','harp3');

if (isset($_POST['interests'])) {

    $interests_str = implode(" ", $_POST['interests']);// converts $_POST interests into a string
    $interests_array = explode(" ", $interests_str);// converts the string to an array which you can easily manipulate  




            foreach ($name_array as $row=>$name)

            {

            $username = mysql_real_escape_string($name);

            $photo = mysql_real_escape_string($_POST['interests'][$row]);

            mysql_query('INSERT INTO photos (username, photo) VALUES ("' . $username . '", ' . $photo . ')') or die(mysql_error());

            }




}



?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>array test</title>
</head>
<body>
<form action="array.php" method="post">



    <input type="checkbox" name="interests[]" value="Politics" />Politics<br />
    <input type="checkbox" name="interests[]" value="Entertainment" /><br />
    <input type="checkbox" name="interests[]" value="Tech" /><br />
    <input type="checkbox" name="interests[]" value="Health" /><br />
    <input type="checkbox" name="interests[]" value="Living" /><br />
    <input type="checkbox" name="interests[]" value="Travel" /><br />
    <input type="checkbox" name="interests[]" value="World" /><br />


    <input type="submit" value="Submit">
</form>
</body>
</html>
EN

回答 2

Stack Overflow用户

发布于 2011-02-06 15:57:39

SQL语句中的$photo没有用引号括起来。另外,循环是这样的:

循环1:$username="harp1",$photo=“第一个选中的复选框的值”

循环2:$username="harp2",$photo="second value“

循环3:$username="harp3",$photo="third value“

这说不通。

票数 0
EN

Stack Overflow用户

发布于 2011-02-06 15:57:51

使用双引号字符串创建数据库查询:

代码语言:javascript
复制
mysql_query("INSERT INTO photos (username, photo) VALUES ('$username', '$photo')")
    or die(mysql_error());

您忘了在$photo两边加上引号。双引号字符串通过使其更易于阅读来减少这类错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4912225

复制
相关文章

相似问题

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