Как вставить эту полную статью? - PullRequest
0 голосов
/ 19 сентября 2018

эта строка PHP:

$xx_val = (string) $xx;

генерирует следующий вывод:

string(16) "XYZ1"
string(11) "XYZ2"
string(12) "XZY1"
string(19) "XZY2"
string(34) "8997451"

, когда я вставляю его в свою базу данных:

        $xx_val = (string) $xx;
        $sql = "INSERT INTO attributes (article) VALUES ($xx_val)";
        if ($conn->query($sql) === TRUE) {
            echo "\n\n### DONE ###\n\n";}
        else {
            echo "\n\n### ERROR ###" . $sql . "\n" . $conn->error . "\n\n";}

    +-----+-----------+------------+--------+----------+-----------+-------------+
    | id  | article   | attr1      | attr2  | attr3    | attr4     | attr5       |
    +-----+-----------+------------+--------+----------+-----------+-------------+
    | 001 | XYZ1      | NULL       | NULL   | NULL     | NULL      | NULL        |
    | 002 | XYZ2      | NULL       | NULL   | NULL     | NULL      | NULL        |
    | 003 | XZY1      | NULL       | NULL   | NULL     | NULL      | NULL        |
    | 004 | XZY2      | NULL       | NULL   | NULL     | NULL      | NULL        |
    | 005 | 8997451   | NULL       | NULL   | NULL     | NULL      | NULL        |
    +-----+-----------+------------+--------+----------+-----------+-------------+

но яхотел бы, чтобы все атрибуты были в одной строке:

    +-----+-----------+------------+--------+----------+-----------+-------------+
    | id  | article   | attr1      | attr2  | attr3    | attr4     | attr5       |
    +-----+-----------+------------+--------+----------+-----------+-------------+
    | 001 | 1         | XYZ1       | XYZ2   | XZY1     | XZY2      | 8997451     |
    +-----+-----------+------------+--------+----------+-----------+-------------+

Я почти уверен, что моя "вставка в" неверна, но я не знаю, как это исправить.

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Вы должны обновить свой SQL-запрос, он должен выглядеть следующим образом:

$sql = "
  INSERT INTO attributes (article , attr1, attr2, attr3, attr4 , attr5)
  VALUES ('$article', '$attr1', '$attr2', '$attr3', '$attr4', '$attr5')
";
$result = $conn->query($sql);

, и теперь вам нужно иметь переменные $article, $attr1, $attr2, $attr3, $attr4, $attr5, которые содержат соответствующие значения.

И когда вы делаете$xx_val = (string) $xx; пожалуйста, не забывайте о проверке и экранировании фактического значения с целью предотвращения SQL-Injection.

0 голосов
/ 19 сентября 2018

Вы забываете qoutes вокруг строковых значений следующим образом:

INSERT INTO attributes (article, attr1, attr2, attr3, attr4, attr5) 
VALUES ('$xx_val', '$xx_val', '$xx_val', '$xx_val', '$xx_val', '$xx_val')
...