Простой объект sqli insert

Здравствуйте, я хотел бы вставить все из $ _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");

0

Решение

В вашем запросе есть синтаксическая ошибка, которую вы никогда не проверяли:

$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));
}
0

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

Ошибка говорит, что вы пытаетесь вызвать функцию-член, а именно bind_param()на необъекте.

Это означает, что эта строка:

$stmt = $dbc->prepare($query);

не удается,

и, таким образом, у вас есть неправильное возвращаемое значение, которое установлено в качестве значения $stmt

поэтому, когда вы пытаетесь позвонить bind_param это терпит неудачу, потому что $stmt это не тот тип объекта, который он ожидал.

0

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