sql >> Database >  >> RDS >> Mysql

PDO matrixwaarden invoegen

Ten eerste is uw volgorde van evaluatie verkeerd. U zou geen variabele met een POST-waarde moeten instellen VOORDAT u controleert of de POST-waarde zelfs bestaat. Je moet het bestaan ​​ervan controleren en het dan alleen in een variabele zetten als het bestaat.

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

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

Ten tweede neem ik aan dat je al een verbinding hebt van eerder (*) -- dus het is niet nodig om opnieuw verbinding te maken. Omdat uw zoekopdracht kort is, kunt u ? . gebruiken om uw parameters te binden zoals getoond in Voorbeeld #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

Je zou kunnen kijken naar transacties terwijl u meerdere inserts maakt.



  1. beste e-commerce winkelwagentjes voor Zend Framework-ontwikkelaar

  2. Waarom zou Magento een klant niet redden na het genereren van een ID?

  3. Alle dubbele rijen selecteren op basis van een of twee kolommen?

  4. Android SQLite werkt de gegevens niet bij