2013-06-01 6 views
0

* Я пытаюсь поставить локальный массив значений $ ProductName в таблицу sqlite3, массив выглядит следующим образом:PHP массив sqlite3 DB

[0] usb 16gb 
[1] monitor 16" 
[2] dual batteries 
[3] multi blender pro 

и так далее *

// Prepare INSERT statement into sqlite3 
    $insert = "INSERT INTO products (name) 
      VALUES (:name)"; 

    $stmt = $db->prepare($insert); 

    // Bind parameters to statement variables 
    $stmt->bindParam(':name', $title); 

    // Loop all product title and execute 
    foreach ($productname as $i) 
    { 
     // Set values to bound variables 
     $title = $i['name']; 
     // Execute statement 
     $stmt->execute(); 
    } 

    $result= $db->query('SELECT * FROM products'); 
    foreach($result as $row) 
    { 
     echo "Id: " . $row['id'] . "\n"; 
     echo "Title: " . $row['name'] . "\n"; 
    } 

Хотя это делает работу, он печатает

Id: 1 
Title: U 
Id: 2 
Title: M 
Id:3 
Title: D 
Id:4 
Title: M 

Где я Я ошибаюсь? Он не распечатывает всю строку (название продукта) ...? Также он выполняет итерацию около 80 раз, когда на самом деле есть только 4 или около того названия. В принципе, я хочу, чтобы массив php был помещен в столбец таблицы sqlite3 (productTitle).

+0

Спасибо, что не ответили, это было разрешено самим собой! – user2436729

ответ

0

Чтобы быть кратким, переменная title используется до ее объявления. Его следует использовать внутри петли, например: $stmt->bindParam(':name', $i['name']);

Смежные вопросы