Mysql
 sql >> база данни >  >> RDS >> Mysql

PDO вмъкване на стойности на масив

Първо, вашият ред на оценка е грешен. Не трябва да задавате променлива с POST стойност ПРЕДИ да проверите дали POST стойността изобщо съществува. Трябва да проверите съществуването му, след което да го зададете в променлива само ако съществува.

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

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

Второ, предполагам, че вече имате връзка от преди (*) -- така че няма нужда да се свързвате отново. Тъй като вашата заявка е кратка, можете да използвате ? за обвързване на вашите параметри, както е показано в Пример #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

Може да искате да разгледате транзакции тъй като правите множество вмъквания.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изберете MAX или Order By Limit 1

  2. sql заявка за получаване на изтрити записи

  3. Какъв е оптималният номер на MYSQL заявка в php скрипт?

  4. Как да вмъкна нов ред в базата данни с колона AUTO_INCREMENT, без да указвате имена на колони?

  5. SQLSTATE[HY000] [2002] Неуспешен опит за свързване.. - При опит за свързване от локален към отдалечен сървър