【问题标题】:how to store data seperated with comma in php如何在php中存储用逗号分隔的数据
【发布时间】:2018-04-11 09:12:35
【问题描述】:

HTML 代码

<!DOCTYPE html>
<html>
    <head>  
        <meta charset="utf-8"> 
        <title>dynamic</title>
    </head> 
    <body>
        <form action="">  
            <div id="items">
                <input type="text" name="username">
            </div>
            <input type="button" value="add entry" id="add">
            <input type="submit" value="submit"> 
        </form> 
        <script src="js/jquery-3.2.1.min.js"></script>
        <script src="js/custom.js"></script>
    </body>
</html>

JavaScript 代码

$(document).ready(function(){

    $("#add").click(function (e){
event.preventDefault()
        $('#items').append('<div><input type="text" name="username">'
            +'<input type="button" value="delete" id="delete"/></div>');
    });

    $('body').on('click','#delete',function (e){
        $(this).parent('div').remove();

    });
});

数据库连接

<?php
$local = "localhost";
$username = "root";
$password = "";
$dbname = "test";
$conn = mysql_connect($local, $username, $password);
$db= mysql_select_db( $dbname,$conn);

$n=$_POST["username"];              

$in = "INSERT INTO table(header1) VALUES ('$n') ";
if(mysql_query($in)===TRUE)
{
  echo " <h1>successfully Inserted</h1> <br>"; 


}
else {
    echo "Error: " . $in . "<br>" . $conn->error;
}
?>

数据库名称 = 测试

表名=表

我需要用逗号存储值每个值都需要用逗号分隔, 在上面的代码中,我创建了动态文本框,所以有很多文本框。 截图如下:

【问题讨论】:

  • 停止使用 mysql_* 函数,它们已被弃用
  • 不建议将数据存储为逗号分隔值。了解如何规范您的数据库。
  • 在您的输入字段上使用 foreach
  • 你问什么问题?

标签: javascript php html database


【解决方案1】:

正如其他人已经指出的那样,不要将逗号分隔的列表存储在数据库中,而是对其进行规范化或使用序列化的 blob 字段(也不好,但更好)。

你也不应该使用 mysql_* 函数,因为它们在 PHP5.6(?) 中已被弃用并在 PHP7 中完全删除。请改用 mysqli_* 或 PDO。 此外,您的代码容易受到 SQL 注入的攻击,因为您将发布的数据直接存储到数据库中。

看看我的一个较早的答案,它是关于同一主题(有点):Link

【讨论】:

    【解决方案2】:

    要在您发布的数据中获取一组用户,您应该首先将输入更改为:

    <input type="text" name="username[]">
    

    然后在您的 php 代码中,使用 implode function 加入所有用户,用逗号分隔,如下所示:

    $n = implode(",", $_POST["username"]);
    $in = "INSERT INTO table(header1) VALUES ('$n') ";
    ...
    

    小心用户输入,你应该在插入之前验证它们,永远不要相信用户输入

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-25
      • 2012-03-19
      • 2014-09-09
      • 1970-01-01
      • 2018-01-01
      • 2011-05-30
      • 2015-09-23
      相关资源
      最近更新 更多