私は PHP の初心者で、この関数の構文を変更して、1 つだけではなく複数の配列を除外するために使用できるようにする方法がわかりません。このコードは、フィールドを指定せずにフォームに入力されたすべての値を自動的に挿入し、1 つの配列 (「送信」と呼ばれる) を除外し ます。 blog/2007/10/inserting-an-array-into-a-mysql-database-table/
投稿されているいくつかの配列があり、INSERT 関数から除外したいのは、それらが処理されて個別に挿入されるか、フォームが処理されるとユーザーがリダイレクトされる場所をトリガーするためです。
function mysql_insert_array($db, $data, $exclude = array()) {
$fields = $values = array();
if( !is_array($exclude) ) $exclude = array($exclude);
foreach( array_keys($data) as $key ) {
if( !in_array($key, $exclude) ) {
$fields[] = "`$key`";
$values[] = "'" . mysql_real_escape_string($data[$key]) . "'";
}
}
$fields = implode(",", $fields);
$values = implode(",", $values);
if( mysql_query("INSERT INTO `$db` ($fields) VALUES ($values)") ) {
} else {
return array( "mysql_error" => mysql_error() );
}
}
$result = mysql_insert_array("db", $_POST, "submit");