PDO: не выполняется несколько запросов

0

код

DB Dump

index.php

Проблема

  • Запуск index.php из браузера не дает вам выхода, если он дайте вам массив из 4 строк. (проблема)
  • Выполнение инструкции sql непосредственно в база данных дает вам 4 строки в качестве вывода. (как и ожидалось)
  • Кроме того, выполняется более простой запрос, например SELECT * FROM company в index.php дает правильный результат. (как ожидалось)

Таким образом, нет проблем с подключением pdo и никаких проблем с операторами sql, и я все еще не получаю требуемый вывод.

Версия PHP: 5.3.1 | Версия MySQL: 5.1.41

Теги:
stored-procedures
pdo

1 ответ

0

Как и предыдущий ответ, это вещь безопасности. Они сделали это, чтобы убедиться, что вы не можете вставить "злые" значения в запрос, например. 'OR 1 = 1; SELECT * FROM пользователей. Я знаю, что вы используете подготовленные инструкции, поэтому это никогда не может произойти, но PDO_MySQL по-прежнему не позволяет этого, насколько мне известно. Однако драйвер PDO_MYSQLND (новее?), Похоже, разрешает это.

Насколько я могу судить, этот драйвер в настоящее время не готов к производству. Угадайте, что вам придется делать это в двух запросах или если они всегда вызываются в этой конкретной последовательности, вы можете скрыть это внутри хранимой процедуры.

  • 0
    Мой первый запрос вызывает хранимую процедуру, которая создает временную таблицу. Я не получаю результат, когда делю на 2 запроса, потому что я думаю, что второй запрос не имеет доступа к временной таблице.
  • 0
    почему вы вызываете хранимую процедуру для создания временной таблицы, а затем пытаетесь выбрать из нее ?? заставить sproc выполнить всю работу - он создает временную таблицу, заполняет ее, а затем возвращает нужные вам данные.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню