Я конвертирую свой проект из MySQL на основе MS SQL с использованием PHP PDO. Приведенный ниже код позволяет распределять записи мыслей (слева и справа), и если запись позволяет сказать # 1, тогда она должна оставаться включенной. # 1 то же самое для последней записи. Я получаю сообщение об ошибке:
Примечание. Попытка получить доступ к смещению массива по значению типа bool в C: \ inetpub \ wwwroot \ dxbase \ DB_Project \ private \ supplierschoice. php on line 96
Строка 96 - это где:
<?php echo "<input type='text' id='CSupplierCode' value='" . $row['SupplierCode'] . "'>"; ?>
У меня также есть $row = $result->fetch();
перед этим.
Код, который запускается при нажатии кнопки «ВЛЕВО»:
<?php
$sql = "SELECT s.SupplierID, ..., l.StreetAddress, ... FROM Suppliers s LEFT JOIN Locations l ON s.SupplierID = l.RefID WHERE l.LocGroup = 1 AND s.SupplierID < '" . $tID . "' ORDER BY s.SupplierID DESC LIMIT 1";
$result = $conn->prepare($sql);
$result->execute();
if (!$result) {
$sql = "SELECT s.SupplierID, ..., l.StreetAddress, ... FROM Suppliers s LEFT JOIN Locations l ON s.SupplierID = l.RefID WHERE l.LocGroup = 1 AND s.SupplierID = '" . $tID . "'";
$result = $conn->query($sql);
if (!$result) { echo "Error creating a record: " . $sql . "<br>" . $conn -> errorInfo();}
}
?>
Код НЕ попадает во вторую часть (!$result
), поэтому выдает предупреждение и пустые поля.
ОБНОВЛЕНИЕ: Пытался использовать SELECT TOP 1
$sql = "SELECT TOP 1 s.SupplierID, s.SupplierCompany, s.SupplierCode, s.Currency, s.PaymentTerm, s.ShippingTerm, s.TMode, s.Agent, s.Carrier, s.Warehouse, l.StreetAddress, l.Suite, l.City, l.Locality, l.State, l.PostalCode, l.Country FROM Suppliers s LEFT JOIN Locations l ON s.SupplierID = l.RefID WHERE l.LocGroup = 1 AND s.SupplierID < '" . $tID . "' ORDER BY s.SupplierID DESC";
$result = $conn->query($sql);
if (!$result) {
$sql = "SELECT s.SupplierID, s.SupplierCompany, s.SupplierCode, s.Currency, s.PaymentTerm, s.ShippingTerm, s.TMode, s.Agent, s.Carrier, s.Warehouse, l.StreetAddress, l.Suite, l.City, l.Locality, l.State, l.PostalCode, l.Country FROM Suppliers s LEFT JOIN Locations l ON s.SupplierID = l.RefID WHERE l.LocGroup = 1 AND s.SupplierID = '" . $tID . "'";
$result = $conn->query($sql);
if (!$result) { echo "Error creating a record: " . $sql . "<br>" . $conn -> errorInfo();}
}
он по-прежнему не попадает во вторую часть после ID меньше # 1, и похоже, что (! $ Result) здесь не работает ..