Обновление Mysqli, вызывающее вызов функции-члена bind_param (), ошибка
Привет, у меня есть форма поля 70/80, которую мне нужно вставить в таблицу, поэтому вместо того, чтобы вручную создавать одну огромную инструкцию вставки, я сначала создал таблицу в моей БД из имен входов в форме, вот код, который я использовать для создания / изменения таблицы
function createTable($array, $memberMysqli)
{
foreach ($array as $key => $value)
{
//echo "<p>Key: ".$key." => Value: ".$value . "</p>";
$query = "ALTER TABLE questionnaire ADD ".$key." text";
if($stmt = $memberMysqli->prepare($query))
{
$success = $stmt->execute();
}
}
echo "Array count: ". count($array) ."" ;
}
Это прекрасно работает и изменил таблицу именно так, как я хотел. Теперь, чтобы вставить значения формы, чтобы сделать это, я делаю простую вставку в одно поле, сохраняю идентификатор строки и затем зацикливаю все переменные записи, обновляющие эту строку. Вот мой код для этого:
$stmt = $memberMysqli->prepare("INSERT INTO questionnaire(userid) VALUES (?)");
$stmt->bind_param('s', $_POST['userid']);
$stmt->execute();
$rowid = $stmt->insert_id;
$stmt->close();
$memberMysqli->autocommit(FALSE);
function updateColumn($memberMysqli, $query, $uid, $value)
{
if ($value)
{
$stmt = $memberMysqli->prepare($query);
//Throws bind param error here
$stmt->bind_param("ss", $value, $uid);
$stmt->execute();
}
}
function loopInputs($array, $memberMysqli, $rowid)
{
foreach ($array as $key => $formvalue)
{
var_dump($key);
updateColumn($memberMysqli, "UPDATE questionnaire SET $key = ? WHERE id = ?", $rowid, $formvalue);
}
}
loopInputs($_POST, $memberMysqli, $rowid);
$memberMysqli->commit();
$memberMysqli->close();
Это вызывает ошибку связывания параметров, и я понятия не имею, почему. Любая помощь будет отличной.