php insert into mysql
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', '[email protected]')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
class Database {
// We make pdo nullable so we can call __destruct and set pdo to null
protected ?PDO $pdo;
private string $dsn = 'mysql:dbname=yourDBName;host=127.0.0.1;charset=utf8mb4';
private string $username = 'mysql_username';
private string $password = 'password';
private array $drivers = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_PERSISTENT => false);
public function __construct()
{
try {
$this->pdo = new PDO($this->dsn, $this->username, $this->password, $this->drivers);
} catch (\PDOException $e) {
echo 'Connection Failed: ' . $e->getMessage();
}
}
public function insert_category($query, $value): ?bool
{
// This only inserts one field,
// To insert more just spread the $value and use foreach and call_func
// But I think SQL class should be strict as possible
$stmt = $this->pdo->prepare($query);
$stmt->bindValue(1, $value, PDO::PARAM_STR);
$stmt->execute();
if ($stmt->rowCount() > 0) {
$stmt = null;
return true;
}
return null;
}