<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
session_start();
$username= $_SESSION['username'];
require "connection.php";
// GET THE DATA FROM POST IF IT EXISTS
$data = isset($_POST['data']) ? $_POST['data'] : false;
// IF IT IS A VALID ARRAY THEN PROCESS IT
if (is_array($data)) {
// LOOP THOUGH EACH SUBMITTED RECORD
foreach($data as $id => $rec) {
// START AN UPDATE STRING
$updatestr = '';
// ADD FIELD/VALUES TO UPDATE STRING
foreach($rec as $fieldname => $value) {
if($fieldname == 'id'){
continue;
}
else{
$updatestr .= "`{$fieldname}` = '{$value}',";
}
}
// REMOVE THE TRAILING ,
trim($updatestr, ',');
$updatestr = rtrim($updatestr, ',');
// CREATE THE UPDATE QUERY USING THE ID OBTAINED FROM
// THE KEY OF THIS data ELEMENT
$query = "UPDATE `call` SET {$updatestr} WHERE id= '$id'";
// SEND IT TO THE DB
$result= mysqli_query($conn, $query);
}
echo "working";
}
else {
echo "not working";
}
?>
私はこのコードを持っており、それが完璧に動作は、しかし、私は mysqli_real_escape_string
を追加したい。しかし、私はそこに正確な情報がわからないので、どのように私は、各変数にそれを行うことができますか?私はそれがクエリに追加される前にそれを追加する特別な文字が追加されたmysqli_real_escape_string()を動的変数に追加するには?
私はまた、私のIDが変更されないことを、それは常に1つの問題は何と変わらないことに気づいた?
なぜ準備文はありませんか? –
何を意味するのですか@PatrykUszyński – jasy
@ PatrykUszyskが何を意味するのかは、準備されたステートメントを使用することではない理由はありません... – nerdlyist