За последние 24 часа нас посетили 18014 программистов и 1682 робота. Сейчас ищут 1077 программистов ...

Несколько запросов в одном подключении к Mysql

Тема в разделе "PHP и базы данных", создана пользователем simple, 4 май 2011.

  1. simple

    simple Активный пользователь

    С нами с:
    17 сен 2010
    Сообщения:
    56
    Симпатии:
    0
    Всем привет, люди нужна ваша помощь или совет. Как сделать несколько запросов к базе типа SELECT
    Например:
    PHP:
    1.  
    2. <?php
    3. header("Cache-Control: no-store, no-cache, must-revalidate");
    4. header("Expires: " . date("r"));
    5. $row=array();
    6. $cols=array();
    7. $link = mysqli_init();
    8. mysqli_real_connect($link, 'localhost', 'root', '1234', 'test');
    9.     printf("Connect failed: %s\n", mysqli_connect_error());
    10.     exit();}
    11. $query = "CALL inreq()";
    12. $result=mysqli_query($link,$query);
    13. while($row = mysqli_fetch_assoc($result)){
    14. //Обработка результата, занесения в массив и.т.д
    15. }
    16. if($row[0]==1) {
    17. $query="SELECT b FROM tab2";
    18. $result=mysqli_query($link,$query);
    19. while($row = mysqli_fetch_assoc($result)){
    20. $cols[]=$row;}
    21. echo json_encode($cols);} else { echo 'Ничего ненайдено';}
    22. mysqli_close($link);
    23. ?>
    24.  
    На такой запрос PHP пишет ошибку:Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in
    Если же оставить какой нибудь один запрос то он выполняется, а в паре почему то выходит ошибка. Или нельзя вообще делать такие запросы в PHP? Посоветуйте кто в курсе всего этого
     
  2. titch

    titch Активный пользователь

    С нами с:
    18 дек 2010
    Сообщения:
    847
    Симпатии:
    0
    PHP:
    1. <? while ($myrow = $result->fetch_array(MYSQLI_ASSOC))
    2. {
    3.   $a=$myrow["a"];
    4.   $b=$myrow["b"];
    5. }
     
  3. simple

    simple Активный пользователь

    С нами с:
    17 сен 2010
    Сообщения:
    56
    Симпатии:
    0
    ничего не понял
     
  4. titch

    titch Активный пользователь

    С нами с:
    18 дек 2010
    Сообщения:
    847
    Симпатии:
    0
    если вы используете mysqli то и обращайтесь к объектам
     
  5. simple

    simple Активный пользователь

    С нами с:
    17 сен 2010
    Сообщения:
    56
    Симпатии:
    0
    Мне нужно выполнить 2 хранимые процедуры в одном подключении, ошибку выдает всегда на 2 процедуре, я их менял местами, все равно ошибку кажет вторая по счету процедура.
    А чем плохо процедурное обращение?
    PHP:
    1.  
    2. <?php
    3. header("Cache-Control: no-store, no-cache, must-revalidate");
    4. header("Expires: " . date("r"));
    5. $row=array();
    6. $cols=array();
    7. $link = mysqli_init();
    8. mysqli_real_connect($link, 'localhost', 'root', '1234', 'ufts');
    9.     printf("Connect failed: %s\n", mysqli_connect_error());
    10.     exit();}
    11. $query="CALL proc1();";
    12. $result=mysqli_query($link,$query);
    13. if($result){
    14. while($row = mysqli_fetch_assoc($result)){
    15. $cols[]=$row;
    16. }
    17. echo json_encode($cols);}
    18. $query = "CALL proc2()";
    19. $result=mysqli_query($link,$query);
    20. if($result){
    21. while($row = mysqli_fetch_assoc($result)){
    22. echo $row['a'];
    23. }
    24. }
    25. mysqli_close($link);
    26. ?>
    27.  
    выполняется всегда только 1 процедура, до второй дело не доходит, ошибки сервер не выдает, почему так все таки происходит?
     
  6. simple

    simple Активный пользователь

    С нами с:
    17 сен 2010
    Сообщения:
    56
    Симпатии:
    0
    Сделал через объекты, выполняется так же только первая процедура но теперь ошибку не выдает на второй