Как я вставляю в PDO (sqllite3)?

Когда дело доходит до Linux , я предлагаю Узел обновления с помощью диспетчера пакетов:

Узел поставляется с npm pre- установлен, но менеджер обновляется чаще, чем Node. Запустите npm -v, чтобы увидеть, какая у вас версия, затем npm install npm@latest -g , чтобы установить новейшее обновление npm. Запустите npm -v еще раз, если вы хотите убедиться, что npm обновлен правильно.

Чтобы обновить NodeJS, вам понадобится удобный модуль npm. Запустите этот код, чтобы очистить кэш npm, установите n и установите последнюю стабильную версию Node:

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

Чтобы установить последнюю версию, используйте n latest. Кроме того, вы можете запустить n #. #. #, Чтобы получить конкретную версию Node.


Когда дело доходит до Windows/ macOS , я предлагаю использовать Установщики на Nodejs.org

Загрузки Node.js страница содержит бинарные пакеты для Windows и macOS - но зачем делать вашу жизнь сложнее? Готовые установщики - .msi для Windows и .pkg для macOS - делают процесс установки невероятно эффективным и понятным. Загрузите и запустите файл, и пусть мастер установки позаботится обо всем остальном. С каждым загруженным обновлением более новые версии Node и npm заменяют старую версию.

В качестве альтернативы пользователи macOS могут использовать приведенные выше инструкции npm и n.


Когда дело доходит до обновления папки node_modules зависимостей, я предлагаю пропустить все вещи, которые могут вызвать у вас головную боль, и просто перейти к вашему конкретному проекту и снова запустить npm install.

Прежде чем кто-либо сделает это, я предлагаю сначала проверить ваш файл package.json на следующее:

Как пользователь пакетов NodeJS, вы можете указать, какие обновления может принимать ваше приложение, в package.json файл. Например, если вы начинали работу с версией пакета 1.0.4, вы можете указать допустимые диапазоны версий обновления тремя основными способами:

Разрешить Патч Выпуски: 1.0 или 1.0.x или ~ 1.0.4
для разрешения незначительных выпусков: 1 или 1.x или ^ 1.0.4
для разрешения мажорных Выпуски: * или x

Объяснение:

ОСНОВНАЯ версия для случаев несовместимых изменений API. -> ~

MINOR версия для случаев, когда функциональность добавляется в обратно совместимой манере. -> ^

PATCH версия для исправлений ошибок с обратной совместимостью. -> *

11
задан JabberwockyDecompiler 8 May 2015 в 20:44
поделиться

2 ответа

Одним из больших преимуществ PDO является то, что вы можете создавать подготовленные операторы. Вот код из моего проекта PHP:

$qry = $db->prepare(
    'INSERT INTO twocents (path, name, message) VALUES (?, ?, ?)');
$qry->execute(array($path, $name, $message));

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

Если вы сделаете это, ваш запрос будет намного безопаснее и с большей вероятностью будет работать (поскольку отсутствующее значение остановит работу вашего запроса, если вы вставите переменные непосредственно в запрос, как вы это делаете).

22
ответ дан 3 December 2019 в 04:13
поделиться

У вас может быть ошибка в вашем запросе SQL. Вы можете распечатать его, а затем попытаться выполнить в каком-нибудь графическом интерфейсе SQLite, таком как Браузер базы данных SQLite .

// you can skip PDO part for now, because we know it doesn't work
// $dbh = new PDO('sqlite:vets.db');
$query = "INSERT INTO vets(name,email,clinic,streetname,citystatezip,link,phone,fax,animal,region,visible) VALUES ($name,$email,$clinic,$streetname,$citystatezip,$link,$phone,$fax,$animal,$region,$visible)";
echo $query;
// $count = $dbh->exec($query);
// $dbh = null;

Я вижу, что вы не заключаете свои значения в кавычки, возможно, это источник проблемы. Возможно, какие-то опечатки в названиях полей таблицы. Все откроется, как только вы действительно увидите запрос.

3
ответ дан 3 December 2019 в 04:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: