简体   繁体   中英

How to insert data in multiple table with one query PDO mysql?

I need to insert data in mysql database with one query in PDO mysql.

I need the same thing what is here done with mysqli multi query.

This works fine

$insert =" 

insert into comments (user_id,comment) values('$user_id','$comment');

insert into comments2 (user_id,comment) values('$user_id','$comment');

$run = mysqli_multi_query($con,$insert);

But how can I do this in PDO

connection.php :

 <?php class db { private $conn; private $host; private $user; private $password; private $baseName; private $port; private $Debug; function __construct($params=array()) { $this->conn = false; $this->host = 'localhost'; //hostname $this->user = 'root'; //username $this->password = ''; //password $this->baseName = 'hotwall'; //name of your database $this->port = '3306'; $this->debug = true; $this->connect(); } function __destruct() { $this->disconnect(); } function connect() { if (!$this->conn) { try { $this->conn = new PDO('mysql:host='.$this->host.';dbname='.$this->baseName.'', $this->user, $this->password, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8')); } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } if (!$this->conn) { $this->status_fatal = true; echo 'Connection BDD failed'; die(); } else { $this->status_fatal = false; } } return $this->conn; } function disconnect() { if ($this->conn) { $this->conn = null; } } function getOne($query) { $result = $this->conn->prepare($query); $ret = $result->execute(); if (!$ret) { echo 'PDO::errorInfo():'; echo '<br />'; echo 'error SQL: '.$query; die(); } $result->setFetchMode(PDO::FETCH_ASSOC); $reponse = $result->fetch(); return $reponse; } function getAll($query) { $result = $this->conn->prepare($query); $ret = $result->execute(); if (!$ret) { echo 'PDO::errorInfo():'; echo '<br />'; echo 'error SQL: '.$query; die(); } $result->setFetchMode(PDO::FETCH_ASSOC); $reponse = $result->fetchAll(); return $reponse; } function execute($query) { if (!$response = $this->conn->exec($query)) { echo 'PDO::errorInfo():'; echo '<br />'; echo 'error SQL: '.$query; die(); } return $response; } }

what should I do here to insert in another table

$query = $bdd->execute('insert into comments (user_id,comment) 
values('$user_id','$comment')');

Use 2 queries, not one. Of course it must be parameterized queries.

$stmt = $pdo->prepare("insert into comments (user_id,comment) values(?,?)");
$stmt->execute([$user_id,$comment]);

$stmt = $pdo->prepare("insert into comments2 (user_id,comment) values(?,?)");
$stmt->execute([$user_id,$comment]);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM