Нужно подставить в значение атрибута value значение $data[0]['name']. $data[0]['name'] существует и имеет значение "Петя"(проверено var_dump-ом). PHP: echo <<<_END <form action="My.php" metod="GET"> <input name="name" value="$data[0][name]"><br><br> <input type="submit" value="Добавить"> </form> _END; Ругается на третью строчку.(eclipse выделяет $data[0] как переменную, а [name] как обычную строку.) Notice: Array to string conversion in F:\wamp64\www\edit.php on line 17 php 7.0.10
А зачем нижний пробел перед END? и попробуйте брать переменные и ключи массива в фигурные скобки PHP: <?php $data[0][name] = 'Имя'; echo <<<END <form action="My.php" metod="GET"> <input name="name" value="{$data[0][name]}"><br><br> <input type="submit" value="Добавить"> </form> END;
А не проще ли экранировать сразу и SQL и HTML. Так htmlspecialchars будет выполняться только один раз при записи, а не каждый раз при выводе. Быстрее работать будет.
ты теряешь оригинальные данные, что если логин будет <br> то для его поиска в базе нужно будет уже учитывать экранирование, так что лучше хранить в базе оригинал, результат вывода всегда можно закэшировать