|
Как вернуть параметров больше одного 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) Мануал вот здесь
|
|
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_ считается устаревшей.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший