Веб-сайт, на котором я работаю, отправляет неверную информацию о платежной стране в Sagepay (это поле теперь является мандатом на обновление 3,00), и я пытаюсь найти способ пройти правильная информация в файле PHP.Возвращаемое значение из базы данных SQL для Sagepay с использованием PHP-запроса
текущей строки отправить эту информацию:
$crypt .= "&BillingCountry=".$orderArray["country"];
Проблема с этим состоит в том, что поле «страна» в orderArray дает название страны, как установить в нашей CMS, а не код ISO, который SagePay требует.
Правильные коды ISO хранятся в базе данных SQL, поэтому информация доступна. В таблице базы данных содержатся уникальный идентификатор, имя, код ISO, номер ISO плюс другая информация, относящаяся к сайту.
мне нужно заменить выше склепа с этим:
$crypt .="&BillingCountry=".$countryISO;
Где $ countryISO добавляется в код в качестве запроса. Этот запрос должен выглядеть в колонке ISO Code (isocode) таблицы базы данных стран и возвращать значение кода ISO в соответствии с именем «country» в orderArray.
Я попытался собрать что-то вместе, следуя php, используемому в других файлах для сайта, которые, похоже, что-то похожи. например:
$countryISO = $dbA->query("SELECT isocode FROM $tableCountries WHERE name=".$orderArray["country"]);
Я также попытался:
$countryISO = $dbA->retrieveAllRecordsFromQuery("SELECT isocode FROM $tableCountries WHERE name=".$orderArray["country"]);
Существует PHP-файл на сервере сайта, который имеет «запрос» и функции «retrieveAllRecordsFromQuery», среди других (например, число , fetch, retrieveAllRecords), а также включает в себя функцию, связанную с $ dbA, которая, как я полагаю, подключается к базе данных.
Мне нужен совет относительно того, как я могу добиться вытаскивания кода ISO из базы данных SQL. Мой код где-то рядом с тем, что мне нужно?
Как конкретно этот код неудачу? Что делать, если не правильно использовать подготовленные инструкции, что происходит при выполнении запроса? I * подозреваемый * вы не оборачивать значение строки в кавычках (проблема, которая становится спорным при использовании подготовленных заявлений). – David
вы должны обернуть значение имени кавычками: 'WHERE name = '". $ OrderArray ["country"]. "'" ' – Ormoz
Дэвид, я не знаком с PHP (полностью из моей глубины), но был задан с сортировкой этого. Единственный способ, которым я знаю, что это не удается, - это загрузить его на наш живой сервер и использовать тестовую функцию Sagepay. Я просто получаю сообщение об ошибке, когда значение Billing Country недопустимо при отправке информации в Sagepay, что означает, что это не давая правильного значения (код ISO, например, GB). У меня нет никакого способа увидеть значение _what_, которое оно фактически получает, если что-нибудь. – Lauren