mysqli_stmt_bind_param пытается передать смешанные переменные в виде строки

            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, так что, возможно, есть совершенно другая функция, которую я не знаю, но конечная цель всего этого — иметь свою собственную личную функцию, которую я могу использовать повторно, чтобы создать готовый оператор для вставки любое количество столбцов через заполнитель в моей БД.

Любая помощь будет оценена.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]