$_POST 関数から配列を受け取り、インデックスとインデックスに含まれる値を使用して SQL を作成する関数があります。私の問題は、SQL を正しくエコーする関数を取得できるが、変数を作成できないことです。私の機能は以下です
function createcontactsArray($sql,Array $contactsArray){
//array has already been cleaned from sql injections
//delete null variables and the value of the submit button
foreach ($contactsArray as $key => $value) {
if($value == ""||$value=="continue") {
unset($contactsArray[$key]);
}
}
echo "INSERT INTO users(";
//create list of tables to use in the database
foreach ($contactsArray as $key => $value) {
if ($value == end($contactsArray)) {
echo $key;
} else {
echo $key.",";
}
}
echo ') VALUES (';
//create list of tables to use in the database
//$newcontactsArray = array_values($contactsArray);
foreach ($contactsArray as $key => $value) {
if ($value == end($contactsArray)) {
echo '"'.$value.'"';
} else {
echo '"'.$value.'"'.",";
}
}
echo ');';
}
たとえば、このスクリプトを実行して連想配列を渡すと$contacts = array("name"=>"Peter griffin","town"=>"Quahogn");
、次のように出力されますINSERT INTO users (name,contacts) VALUES ("Peter griffin","Quahog")
。ただし、関数で次のようなSQLを作成して、 「ありがとう$sql = INSERT INTO users (name,contacts) VALUES ("Peter griffin","Quahog")
」とだけ出力するようにします。echo $sql;