За последние 24 часа нас посетил 53691 программист и 1765 роботов. Сейчас ищут 1463 программиста ...

Как вернуть из insert а id (mysql вставка)

Тема в разделе "Прочие вопросы по PHP", создана пользователем Conus, 21 окт 2015.

  1. Conus

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

    С нами с:
    21 окт 2015
    Сообщения:
    92
    Симпатии:
    0
    НЕ знаю от чего из функции не возвращает параметр
    подскажите в чем ошибка, пожалуйста

    Код (PHP):
    1. if($action == "add")
    2. { 
    3.   if(!empty($_POST))
    4.   {         
    5.    articles_new($link, $id, $_POST['title'], $_POST['text']);  // Запрос на вставку, id не принимает
    6.  
    7.    $id =   mysqli_insert_id($link);          //  Здесь параметр не передаётся
    8.  
    9.    header("Location:    ../article.php?id=$i");  
    10.   }
    11. ..
    12.  
    13. ------------------------------------------------------------------------------
    14. function articles_new($link, $id, $title, $text)
    15. {
    16.    $title = trim($title);
    17.    $text = trim($text);
    18.    if($title == '') { return false; }
    19.  
    20.    $t = "INSERT INTO art (title, text) VALUES ('%s', '%s')";
    21.    $Question = sprintf($t, mysqli_real_escape_string($link, $title), mysqli_real_escape_string($link, $text));
    22.    $res = mysqli_query($link,  $Question);     
    23.  
    24.    $id = mysqli_insert_id($link);   //Здесь параметр принимает и не передаётся
    25.  
    26.    if(!res) { die(mysqli_error($link)); }  
    27.    return  true;
    28. } 
    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Ничего не понятно
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    По умолчанию параметры передаются "по значению". То есть В функцию передаются, а ИЗ функции нет. Чтобы работал в обе стороны, надо поставить & в параметрах. Это называется "передача параметра по ссылке":
    Код (PHP):
    1. function articles_new($link, &$id, $title, $text)
    Теперь если $id изменится внутри функции, то он изменится и в месте вызова.

    Только теперь убери лишнюю строку, где у тебя коментарий // Здесь параметр не передаётся
     
  4. Conus

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

    С нами с:
    21 окт 2015
    Сообщения:
    92
    Симпатии:
    0
    Спасибо - оч помогло