Open mentorduncan opened 1 month ago
Cannot reproduce this error.
My steps to reproduce:
CREATE TABLE pivot_table (
id INT AUTO_INCREMENT PRIMARY KEY,
foreign_key_1 INT NOT NULL,
foreign_key_2 INT NOT NULL,
UNIQUE KEY fk_UNIQUE (foreign_key_1, foreign_key_2)
);
<?php
namespace App\Controllers;
class Home extends BaseController
{
public function index()
{
$db = \Config\Database::connect();
$builder = $db->table('pivot_table');
$data = [
['foreign_key_1' => 5, 'foreign_key_2' => 6],
['foreign_key_1' => 5, 'foreign_key_2' => 6],
];
$builder->insertBatch($data);
echo "Data inserted successfully.";
}
}
And it'll throw the DatabaseException.
PHP Version
8.3
CodeIgniter4 Version
4.5.5
CodeIgniter4 Installation Method
Composer (using
codeigniter4/appstarter
)Which operating systems have you tested for this bug?
Windows
Which server did you use?
apache
Database
MariaDB 11.4.2
What happened?
ERROR - 2024-10-02 16:17:07 --> mysqli_sql_exception: Duplicate entry '620-43' for key 'fk_UNIQUE'
Steps to Reproduce
Create a pivot table, where the combination of the two fk columns is unique.
Feed it with some combinations of fks And do an insertBatch where there is a collision.
Despite logging the error above, the script will run until the end. And it was not possible to capture the error even with:
catch (DatabaseException $e)
catch (\mysqli_sql_exception $e)
orcatch (\Exception $e)
Expected Output
a more user-friendly or catchable error for me to deal with.
Anything else?
No response