sql >> Databáze >  >> RDS >> Mysql

PDO vložit hodnoty pole

Za prvé, vaše pořadí hodnocení je špatné. Proměnnou s hodnotou POST byste neměli nastavovat PŘED kontrolou, zda hodnota POST vůbec existuje. Měli byste zkontrolovat jeho existenci a poté jej nastavit do proměnné pouze v případě, že existuje.

$id = $conn->lastInsertId(); // obtained from above (*)

if (!isset($_POST['services'])) {
    echo  'Nothing Selected';
} else {
    $services = $_POST['services']; // array(0 => 1, 1 => 2, ...)

Za druhé, předpokládám, že již máte připojení z dřívějška (*) -- takže není třeba se znovu připojovat. Protože je váš dotaz krátký, můžete použít ? svázat vaše parametry, jak je uvedeno v Příklad č. 3 .

    try {
        $stmt = $conn->prepare('INSERT IGNORE INTO marketing_lookup SET domain_id = ?, service_id = ?');
        foreach ($services as $serviceId) {
            $stmt->execute(array($id, $serviceId));
        }
    } catch (PDOException $e) {
        echo $e->getMessage();
    }
}

$conn = null; // pointless

Možná se budete chtít podívat na transakce protože děláte více vložek.



  1. Co je potřeba pro práci s Oracle ze sady Visual Studio 2010?

  2. Rozdělení miliardové tabulky fotbalových dat pomocí kontextu dat

  3. Vylepšete hašování hesel pomocí náhodné soli

  4. Co je PostgreSQL ekvivalent k SQL Server NVARCHAR?