Pdo, множественная запись в таблицу
Не понимаю. В классе
function __construct() {
$this->db_id = new PDO('mysql:host=localhost;dbname=tb', 'us', '123'
[PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'",
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
return $this->db_id;
}
Далее вызываем
$pdo = new pd;
Необходимо записать множество записей, в цикле, но с перва разобраться с этим
$all = $pdo->prepare("INSERT INTO `test` (`ss`) VALUES (?)", [PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL]);
$all->bindParam($tags);
$tags = 'sssss';
$all->execute();
https://www.php.net/manual/ru/pdo.prepared-statements.php
Как только не пробовал, не выходит. Не записывает...
Пробовал добавить отдельно 2 объекта в класс под это. Так не знаю как передать имея переменной, не значение, а именно имя...
Ответы (1 шт):
Автор решения: Rijen
→ Ссылка
Вы можете забиндить как неименованный:
$stmt->$pdo->prepare("INSERT INTO `test` (`ss`) VALUES (?)");
$tag = 'sss'
$stmt->bindParam(1, $tag, PDO::PARAM_STR);
$stmt->execute();
Так и именнованый параметр:
$stmt->$pdo->prepare("INSERT INTO `test` (`ss`) VALUES (:zz)");
$tag = 'sss'
$stmt->bindParam(':zz', $tag, PDO::PARAM_STR);
$stmt->execute();
В документации есть много пример использования.
Есть хороший, более полный ответ по разным видам биндов.
$stmt = $this->db_id->prepare(...);
foreach($any_data as $params){
$stmt->execute($params);
}