2016-01-01 3 views
-1

Я использовал это:Импорт переменных из PHP в SQL

$sqlImport = "INSERT INTO " . $fileName . "(id, asin, amount, salesRank) 
    VALUES($id, $asin, $amount, $salesRank)"; 

, но это ничего не возвращает. он возвращает эту ошибку:

INSERT INTO correctscan(id, asin, amount, salesRank) VALUES(733966071394, B0088YRCGK, 0.00, 23202) 
Unknown column 'B0088YRCGK' in 'field list' 

Я не знаю, почему я получаю эту ошибку, потому что я новичок в MySQL. Если бы кто-то помог мне, я был бы очень признателен!

ответ

1

Вы должны поставить кавычки $asin, так как это строка.

$sqlImport = "INSERT INTO " . $fileName . "(id, asin, amount, salesRank) 
    VALUES($id, '$asin', $amount, $salesRank)"; 

Но было бы лучше узнать, как использовать подготовленные запросы с параметрами. Вот пример PDO:

$stmt = $pdo->prepare("INSERT INTO $fileName (id, asin, amount, salesRank) VALUES (:id, :asin, :amount, :salesrank)"; 
$stmt->bindParam(':id', $id); 
$stmt->bindParam(':asin', $asin); 
$stmt->bindParam(':amount', $amount); 
$stmt->bindParam(':salesrank', $salesRank); 
$stmt->execute(); 
+0

Моя единственная проблема с этим в том, что я настолько новичок в sql, что до сих пор не знаю, что происходит. Должен ли я изменить что-либо в верхней части страницы php. Например, соединение? – McStuffins

+0

Так как $ amount выглядит примерно так, '10.99', как бы я пошел об этом, так как есть. между? – McStuffins

+0

Да, вам нужно научиться использовать PDO для установления соединения и изменить весь свой код, чтобы использовать эти функции. Если вы используете расширение mysql, оно устарело, и вы должны немедленно остановиться. – Barmar

0

Попробуйте это:

$sqlImport = "INSERT INTO " . $fileName . "(id, asin, amount, salesRank) 
    VALUES('$id', '$asin', '$amount', '$salesRank')"; 
+0

Вам не нужны кавычки вокруг чисел, только строка. – Barmar

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