foreach ($data_acceptable as $key => $value)
{
if($key != 'submit' && $value != 'submit')
{
$fields_array[] = $key;
$values_array[] = $value;
$placeholder_type .= "s";
$placeholder_num .= "?,";
$complete_array_info .= '$data_acceptable'."['".$key."'], ";
}
}// Builds strings from arrays
$fields = implode(", ", $fields_array);
// Adds ' ' around column names , example = 'user_name'
$values = "'".implode("', '", $values_array)."'";
// Removes last , example = ?,?,?
$placeholder_num = substr($placeholder_num, 0, -1);
$complete_array_info = substr($complete_array_info, 0, -2);
echo $complete_array_info."<br /><br />"; // outputs: $data_acceptable['email'], $data_acceptable['user_name'], $data_acceptable['password']
echo $placeholder_type."<br /><br />"; // outputs: sss
$query = "INSERT INTO users (".$fields.") VALUES (".$placeholder_num.")";
echo $query;
echo "<br />".$values."<br />";
$stmt = mysqli_prepare($dbc, $query);
mysqli_stmt_bind_param($stmt, $placeholder_type, $complete_array_info);
mysqli_stmt_execute($stmt);
$affected_rows = mysqli_stmt_affected_rows($stmt);
if($affected_rows == 1){
echo 'User Entered';
mysqli_stmt_close($stmt);
mysqli_close($dbc);
} else {
echo 'Error Occurred<br>';
echo mysqli_error();
mysqli_stmt_close($stmt);
mysqli_close($dbc);
}
Что я пытаюсь сделать, это построить строку ($complete_array_info
) чтобы сохранить синтаксис для смешанных переменных в пределах mysqli_stmt_bind_param($stmt, $placeholder_type, $complete_array_info);
Ошибка, которую я получаю, заключается в том, что мой sss хранится в $placeholder_type
определяет 3 строковые переменные для прохождения через $placeholder_num
(?,?,?) но $complete_array_info
($ data_acceptable [’email’], $ data_acceptable [‘user_name’], $ data_acceptable [‘password’]) не выполняет требуемый аргумент. Если я вставлю содержимое $complete_array_info
на своем месте все работает отлично.
Я относительно новичок в php и MySQL, так что, возможно, есть совершенно другая функция, которую я не знаю, но конечная цель всего этого — иметь свою собственную личную функцию, которую я могу использовать повторно, чтобы создать готовый оператор для вставки любое количество столбцов через заполнитель в моей БД.
Любая помощь будет оценена.
Задача ещё не решена.
Других решений пока нет …