Я использую базу данных Microsoft Access и подключен к ней через ODBC в своем коде PHP. Я посмотрел онлайн, и в руководстве по PHP написано, что odbc_exec
готовит и выполняет оператор.
В моем коде есть параметры, позволяющие избежать внедрения SQL, но я не могу использовать odbc_prepare
и odbc_execute
, так как они не поддерживаются MS Access. У меня проблемы с поиском, как связать мои переменные с параметрами в моем SQL-выражении.
PHP
<?php
$con=odbc_connect("InventoryDB", "", "");
if (isset($_POST['partNumber'])) {
$partNum = $_POST['partNumber'];
}
if (isset($_POST['manufacturer'])) {
$manufacturer = $_POST['manufacturer'];
}
if (isset($_POST['supplier'])) {
$supplier = $_POST['supplier'];
}
if (isset($_POST['catalogNumber'])) {
$catalogNumber = $_POST['catalogNumber'];
}
if (isset($_POST['deviceFamily'])) {
$deviceFamily = $_POST['deviceFamily'];
}
if (isset($_POST['listPrice'])) {
$listPrice = $_POST['listPrice'];
}
if (isset($_POST['quantity'])) {
$quantity = $_POST['quantity'];
}
if (isset($_POST['packets'])) {
$packets = $_POST['packets'];
}
$stmt = odbc_prepare($con, 'INSERT INTO Parts (PartNumber, Manufacturer, Supplier, CatalogNumber, DeviceFamily, ListPrice, Quantity, Packets) VALUES (?, ?, ?, ?, ?, ?, ?, ?)'); // Insert all of the values from the form into the table
$rs = odbc_execute($stmt, array($partNum, $manufacturer, $supplier, $catalogNumber, $deviceFamily, $listPrice, $quantity, $packets));
?>
Я хотел бы знать, как сделать то, что я сейчас делаю, с подготовкой и выполнением, используя только odbc_exec
.
Все значения взяты из формы для добавления в базу данных, которая показывает инвентаризацию компании.
EDIT
Ошибка при использовании функции prepare и execute возвращает odbc_prepare()
:
Ошибка SQL: [Microsoft] [Диспетчер драйверов ODBC] Драйвер не поддерживает это
функция, состояние SQL IM001 в SQLDescribeParameter