Здравствуйте, я хотел бы вставить все из $ _SESSION в строки $ key со значением $ value
так что-то вроде foreach ($_SESSION as $key => $value) {}
Смотрит на:Лучший способ вставить много значений в MySQL?
имя строки в mysqli совпадает с именами данного ключа $. Мне нужно вставить каждое значение $ в его ключ $ (строка)
Код:
$query = "INSERT INTO testtable VALUES (?)";
$stmt = $dbc->prepare($query);
$stmt->bind_param("s", $key);
$mysqli->query("START TRANSACTION");
foreach ($_SESSION as $key => $value) {
$stmt->execute();
}
$stmt->close();
$mysqli->query("COMMIT");
В вашем запросе есть синтаксическая ошибка, которую вы никогда не проверяли:
$query = "INSERT INTO testtable podatki VALUES (?)";
^^^^^^^^^^^^^^^^^
Если это действительно имя таблицы, то оно должно быть заключено в кавычки:
$query = "INSERT INTO `testtable podatki` VALUES (?)";
^-----------------^
если podatki
это имя поля, то оно должно быть
$query = "INSERT INTO testtable (podatki) VALUES (?)";
^-------^
И также никогда не предполагайте, что операция с БД прошла успешно. ВСЕГДА проверяйте на ошибки:
$stmt = $dbc->prepare($query);
if (!$stmt) {
die(mysqli_error($dbc));
}
Ошибка говорит, что вы пытаетесь вызвать функцию-член, а именно bind_param()
на необъекте.
Это означает, что эта строка:
$stmt = $dbc->prepare($query);
не удается,
и, таким образом, у вас есть неправильное возвращаемое значение, которое установлено в качестве значения $stmt
поэтому, когда вы пытаетесь позвонить bind_param
это терпит неудачу, потому что $stmt
это не тот тип объекта, который он ожидал.