2017-01-04 6 views
-1

У меня есть массив объектов, который я хочу вставить в базу данных.
Итак, я зацикливаю все объекты с помощью цикла.Mysql вставляет пустые строки

Я посылаю $offer и $gameid с AJAX
$offer является массив с 10 пунктов и $gameid просто integer

Все переменные имеют данные, потому что echo им.

Я работаю на XAMPP с локального хоста

include "../../inc/connect.php"; 

$offer = @$_POST['offer']; 
$gameid = @$_POST['gameid']; 

$query = $db->prepare("INSERT INTO items VALUES (id, gameid, assetid, name, icon, price, owner)"); 

for($i = 0; $i < count($offer) - 1; $i++) { 
    $assetid = $offer[$i]['assetid']; 
    $name = $offer[$i]['name']; 
    $icon = $offer[$i]['icon']; 
    $price = $offer[$i]['price']; 

    $query_array = array('id' => '', 'gameid' => $gameid, 'assetid' => $assetid, 'name' => $name, 'icon' => $icon, 'price' => $price, 'owner' => $steamid); 

    $query->execute($query_array); 

echo " 
<div class='item'> 
    <div class='left'> 
     <img src='$avatar' /> 
     <div class='names'> 
      <p>$username</p> 
      <p>$name</p> 
     </div> 
    </div> 
    <div class='right'> 
     <div class='price'> 
      $" . $price . " 
     </div> 
     <div class='item-icon'> 
      <img src='http://cdn.steamcommunity.com/economy/image/$icon' /> 
     </div> 
    </div> 
</div> 
"; 
} 

Connect

$user = "root"; 
$pass = ""; 

$db = new PDO('mysql:host=localhost;dbname=website', $user, $pass); 

Таблица

enter image description here

Что я получаю, когда $query->execute($query_array)

не

enter image description here

Никаких ошибок в mysql_error.log или асинхронности данных

+0

Во-первых: я надеюсь, что вы не используете SQL суперпользователя в качестве производственной площадки :( – Jicao

+0

Не волнуйтесь, я изменить его, когда я загрузить свой сайт на сервере – Tonza

+2

'VALUES (идентификатор , gameid, assetid, name, icon, price, owner) '- вот что вы здесь: * think * string literal и где« ajax »для этого? –

ответ

1

Вы должны колоны на ваши заполнителях, или же он будет относиться к ценностям как имена столбцов:

$query = $db->prepare("INSERT INTO items VALUES (:id, :gameid, :assetid, :name, :icon, :price, :owner)"); 

$query_array = array(':id' => '', ':gameid' => $gameid, ':assetid' => $assetid, ':name' => $name, ':icon' => $icon, ':price' => $price, ':owner' => $steamid); 
0

Проблемы с запросом , Это должно быть так:

$query = $db->prepare("INSERT INTO items 
    (id, gameid, assetid, name, icon, price, owner) 
    VALUES (:id, :gameid, :assetid, :name, :icon, :price, :owner)" 
); 
Смежные вопросы