2016-06-15 2 views
0

Когда я ввожу данные в mysql, он показывает, как показано ниже, я хочу, чтобы все данные были в одной строке. но поскольку я вхожу в данные с помощью массива, у меня есть доступ сразу к двум элементам. Итак, как я могу ввести данные в одну строку? Ниже приводится надрез моего кодаКак ввести данные в базу данных mysql с помощью массива в php?

$array = array("AAPL","GOOG","YHOO","FB","MSFT","NKE","SBUX"); 
foreach ($array as $s) { 
    $sql = "INSERT INTO portfolio ({$s} , {$sss}) VALUES ('{$amount}', '{$value}')"; 
} 

Snip from MYSQL table

+1

укажите схему и код таблицы, которые вы используете для вставки данных и кода, которые вы пытаетесь получить из db – Alex

+0

[Little Bobby] (http://bobby-tables.com/) говорит [ваш скрипт подвержен риску SQL Инъекционные атаки.] (Http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php). Даже [избегая строки] (http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) небезопасно! –

ответ

0

Ваш массив не значений данных, но имена столбцов. Ваша вставка должна быть больше похожа;

$sql = "INSERT INTO portfolio (" 
    foreach ($array as $s) { 
     $sql = $sql + " $s, "; 
    } 
    $sql = $sql + ") values ("; 
    foreach ($amount as $s) { 
     $sql = $sql + " $s, "; 
    }; 
    $sql = $sql + ");" 

Однако вы должны использовать mysqli, привязывая параметры, не строя строки, как в этом примере. Кроме того, ваша таблица, как показано, имеет только одно значение на акцию, без значения и суммы, только для одного значения.

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