使用逗号(,)将数组数据存储到字符串中

时间:2018-04-10 10:25:20

标签: php mysql

[!]问题:每当我从前端获取数据并尝试插入数据库时​​...数据作为单个字母插入到选择单元格中......但是我真正需要的是要插入整个数据用逗号分隔的选区单元格(,)

1

<?php
include_once '../../config/db_connection.php';
include_once '../../config/functions.php';
include "autho.php";
include('../db_mysqli.php');
if (isset($_POST['submit'])) {
$username1 = $_POST['username'];
$username1 = preg_replace('#<script(.*?)>(.*?)</script>#is', '', $username1);
$rollno = $_POST['register_no'];
$rollno = preg_replace('#<script(.*?)>(.*?)</script>#is', '', $rollno);

$subjectcode = implode(',', $_POST['subject']);   ;

date_default_timezone_set("Asia/Kolkata");

$today = date('g:ia \o\n l jS F Y');

$rollnos = array_map('strlen', $rollno);
$rollnos = min($rollnos);
if ($rollnos < 6) {
    $error = 'Roll Number is too short.';
} else {
}
if (!isset($error)) {
    for ($i = 0; $i < count($rollno); $i++) {
$sql = "UPDATE students SET elective='$subjectcode[$i]' WHERE register_number='$rollno[$i]'";
$result = mysqli_query($conn, $sql);
if ($result) {
header('Location:./?edu_camp=elective_student_update&success');

        } else {
             header('Location:./?edu_camp=elective_student_update&fail');
        }
    }

} else {
    //echo "Sorry! something Wrong.";
}

}
?>

1 个答案:

答案 0 :(得分:2)

正如所提到的评论,您可以// Concatenate all values together $commaSeparatedList = implode(',',$subjectcode); // Prepare your statement $stmt = $mysqli->prepare("UPDATE students SET elective=? WHERE register_number=?"); // Bind the relevant parameters (not sure what the where clause should be here) $stmt->bind_param('si', $commaSeparatedList, $i); // Check if rows were affected if ($mysqli->affected_rows > 0) { // Success, rows were changed } // Execute and close the statement object $stmt->execute(); $stmt->close(); 将数组插入字符串并插入(docs)。

此外,您使用的是MySQLi,但未使用您真正应该使用的绑定参数(docs)。

printArr(param: any):void