Связанная переменная не изменяется после выполнения() в примере #5 Хранимые процедуры PDO в документации PHP, [дубликат]Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Связанная переменная не изменяется после выполнения() в примере #5 Хранимые процедуры PDO в документации PHP, [дубликат]

Сообщение Anonymous »

Все это время я делал то, что собираюсь объяснить, используя ASP classic и ASP.Net с MSSQL Server, и это работает прекрасно!
Ниже приведен самый простой пример. Например, один из МНОГИХ, и методы подключения, которые я пробовал, оказались совершенно неудачными, как и все остальные. SP работает в MariaDb при выполнении, но данные никогда не возвращаются или, по крайней мере, переменная $value никогда не обновляется в PHP. Во всех примерах, которые я пробовал, мне удалось убедиться, что данные доходят до SP и там все работает нормально.
Согласно всем найденным мной примерам, это должно работа, но не для меня. В чем может быть проблема? Я просто не вижу и не нахожу этого. Должно быть, мне где-то не хватает знаний.
config.php pdocontacts.php Хранимая процедура MariaDb sp_takes_string_returns_string:

Код: Выделить всё

DELIMITER $$
CREATE PROCEDURE `sp_takes_string_returns_string`(INOUT `astr` VARCHAR(100))
BEGIN
INSERT contacts (name, age, email) VALUES (astr, 1, 'im@mywittsend.com');
SELECT REVERSE(astr) INTO astr;
END$$
DELIMITER ;
вывод pdocontacts.php:
array(5) { [0]=> object(Contact)#3 (4) { ["id"]=> int(5 ) ["name"]=> string(5) "hello"
["age"]=> int(1) ["email"]=> string(15) "im@mywittsend.com" } [ 1]=> object(Contact)#4 (4)
{ ["id"]=> int(4) ["name"]=> string(5) "hello" ["age"]=> int(1) ["email"]=> string(15)
"im@mywittsend.com" } [2]=> object(Contact)#5 (4) { ["id"]=> int (3) ["name"]=> string(5)
"hello" ["age"]=> int(1) ["email"]=> string(15) "im@mywittsend.com" } [3]=>
object(Contact)#6 (4) { ["id"]=> int(2) ["name"]=> string(5) "привет" ["возраст"] => int(1)
["email"]=> string(15) "im@mywittsend.com" } [4]=> object(Contact)#7 (4) { ["id"]= > int(1)
["name"]=> string(5) "hello" ["age"]=> int(1) ["email"]=> string(15) "im@mywittsend. com"
Процедура вернула привет
Я даже поменял местами вставку и реверс, чтобы показать, что реверс работает.

Код: Выделить всё

SELECT REVERSE(astr) INTO astr;
INSERT contacts (name, age, email) VALUES (astr, 1, 'im@wittsend.com');
После пары исполнений страницы:

Код: Выделить всё

array(7) { [0]=> object(Contact)#3 (4) { ["id"]=> int(7) ["name"]=> string(5) "olleh"
["age"]=> int(1) ["email"]=> string(15) "im@wittsend.com" } [1]=> object(Contact)#4 (4) {
["id"]=>...
**procedure returned hello**
Вы можете видеть, что «привет» или «olleh» вставляются в контакты в качестве имени.
Какой флаг или что-то еще мне не хватает???

Подробнее здесь: https://stackoverflow.com/questions/790 ... stored-pro
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»