Многократный запрос на PHP не работает - PullRequest
1 голос
/ 25 июля 2011

Рассмотрим эту простую страницу PHP:

<?php

  $db = new mysqli("localhost", "myuser", "mypwd", "mydb");
    if ($db->connect_error)
      // Dying sequence;

    // Executing query
    $qres = $db->multi_query("SET @rank = -1; SELECT * FROM (SELECT @rank := @rank + 1 as rank, field1, field2 FROM mytable WHERE field1 = 'value') AS T1 WHERE rank = 2;");
    $db->commit();
    if (!qres) {
      // Problems in query
      // Dying
      $db->close();
      return;
    }
    if (!($qres->num_rows == 1)) {
      // Error fetched
      $numrows = $qres->num_rows;
      $db->close();
      // Dying
      return;
    }

    // Returning
    echo "ALLOK";

    $db->close();

  ?>

Ну, это не работает. или если я использую query или multi_query

Вы можете мне помочь?

1 Ответ

1 голос
/ 25 июля 2011

Похоже, вы просто хотите выбрать 3-й ряд из некоторой таблицы. Хотя ранг будет недетерминированным, поскольку вы не указываете предложение ORDER BY для этого внутреннего запроса.

Вам не нужна эта переменная и несколько запросов для этого.

Используйте смещение в предложении LIMIT вместе с предложением ORDER BY.

SELECT field1, field2 FROM mytable WHERE field1 = 'value' ORDER BY something LIMIT 2,1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...