|   |   | 
| 
 | Как вернуть параметров больше одного MYSQL параметров в PHP ? | ☑ | ||
|---|---|---|---|---|
| 0
    
        antihacker 13.10.17✎ 13:15 | 
        Всем привет !
 Есть процедура в майсикл который возвращает несколько параметров. В PHPMyAdmin процедура срабатывает без проблем. А вот не получаеться в PHP обращаться к этой процедуре. Делаю так mysql_query("CALL prc_selected_page_version('".$_SESSION['selected_page_version_id']."',@prm_page_name,@prm_version_type,@prm_root_site_name);") or die(mysql_error()); $result = mysql_query("SELECT @prm_page_name"); echo mysql_result($result, 0); Или надо по другому | |||
| 1
    
        antihacker 13.10.17✎ 13:21 | 
        Ав вот процедура
 BEGIN SELECT dbdev_main_page_tbl.version_type,dbdev_main_page_tbl.version_name,dbroot_site_tbl.root_site_name,dbdev_main_page_tbl.from_root_site_id,dbroot_site_tbl.root_site_id,dbdev_main_page_tbl.main_page_id FROM dbdev_main_page_tbl,dbroot_site_tbl where dbdev_main_page_tbl.from_root_site_id = dbroot_site_tbl.root_site_id and dbdev_main_page_tbl.main_page_id=prm_page_version_id; SET @prm_page_name = (SELECT dbdev_main_page_tbl.version_name); SET @prm_version_type = (SELECT dbdev_main_page_tbl.version_type); SET @prm_root_site_name = (SELECT dbroot_site_tbl.root_site_name); END | |||
| 2
    
        asady 13.10.17✎ 13:27 | 
        echo "CALL prc_selected_page_version('".$_SESSION['selected_page_version_id']."',@prm_page_name,@prm_version_type,@prm_root_site_name);";
 что у тебя выводит? | |||
| 3
    
        antihacker 13.10.17✎ 13:35 | 
        Как что его как текст и выводит     | |||
| 4
    
        Asmody 13.10.17✎ 13:36 | 
        (0) надо по-другому. надо читать мануал.     | |||
| 5
    
        antihacker 13.10.17✎ 13:39 | 
        В инете что то по другому не нашел.     | |||
| 6
    
        Asmody 13.10.17✎ 13:40 | 
        (5) Мануал вот здесь http://php.net/manual/ru/function.mysql-result.php     | |||
| 7
    
        antihacker 13.10.17✎ 13:42 | 
        Там вообще про хранимых процедур ничего нету.     | |||
| 8
    
        antihacker 13.10.17✎ 13:45 | 
        Вот это  работает без проблем
 mysql_query("CALL prc_add_main_page('".$_SESSION['Sroot_site_id']."','".$Selected_PageVersionName."',@last_id);") or die(mysql_error()); $result = mysql_query("SELECT @last_id"); $_SESSION['selected_page_version_id'] = mysql_result($result, 0); | |||
| 9
    
        Asmody 13.10.17✎ 13:47 | 
        (7) Хранимые процедуры вообще не при чём. Сделай через mysqlfetch*     | |||
| 10
    
        Asmody 13.10.17✎ 13:47 | 
        mysql_fetch_*     | |||
| 11
    
        antihacker 13.10.17✎ 14:10 | 
        Спасибо. Получилось.
 $result = mysql_query("CALL prc_selected_page_version('".$_SESSION['selected_page_version_id']."',@prm_page_name,@prm_version_type);") or die(mysql_error()); if (!$result) {echo 'Ошибка запроса: ' . mysql_error(); exit;} $row = mysql_fetch_row($result); echo $row[0]; // 42 echo "/"; echo $row[1]; // 42 echo "/"; echo $row[2]; // 42 | |||
| 12
    
        antihacker 13.10.17✎ 14:12 | 
        Только вот если значение параметра на русском, то вопросительные знаки.     | |||
| 13
    
        Asmody 13.10.17✎ 15:29 | 
        (12) кодировку смотри.     | |||
| 14
    
        Asmody 13.10.17✎ 15:30 | 
        и вообще, используй mysqli*, а не mysql*
 библиотека mysql_ считается устаревшей. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |