Как исправить «Ошибка синтаксического анализа: синтаксическая ошибка, неожиданное« эхо »(T_ECHO)» в PHP при выполнении запроса на выборку из MySql

Я пытаюсь заполнить php-версию из запроса MySql, чтобы использовать ее позже при отправке электронной почты через php. Пожалуйста, смотрите ниже код для заполнения veriable. Я не включил mysql_connect и mysql_select_db, так как это живая база данных, и я знаю, что соединения работают. Также, прежде чем вы заявите, что я должен использовать mysqli или POD, я знаю, но сервер не может быть обновлен, так как существует большое количество страниц, которые полагаются на старый код.

Ошибка — ошибка синтаксического анализа: синтаксическая ошибка, неожиданное «эхо» (T_ECHO)

$emailaddress = "SELECT e_mail FROM frm_change_approver WHERE user_id LIKE '$approvingmanagername'";
$result = mysql_fetch_array($emailaddress);

$approveremail = echo $result['e_mail'];

Мне нужно, чтобы $approveremail заполнялся с помощью вышеуказанного запроса, так как у меня уже есть адрес электронной почты для пользователя в базе данных, и я не хочу, чтобы пользователь вводил неправильный адрес, я только фиксирую user_id пользователей в форме, поскольку я не хочу, чтобы там быть полем адреса электронной почты вообще. Затем я буду использовать заполненную версию, чтобы отправить электронное письмо этому человеку.

Любая помощь будет оценена.

Вам нужно сначала запустить запрос перед fetch_array, не говоря уже о SQL-инъекции.

Mihai 08.04.2019 12:09

@Mihai Вы можете помочь с этим?

XSuperDan 08.04.2019 12:11

Кроме того, зачем вам LIKE, если вы не используете подстановочный знак? Просто сделай user_id = '$approvingmanagername'

Lelio Faieta 08.04.2019 12:13

@LelioFaietaСпасибо, я изменил это, и да, это лучший способ его использования, я думаю, что я только что скопировал другой запрос.

XSuperDan 08.04.2019 12:16

mysql_* устарели и удалены в PHP7 — переключитесь сейчас на mysqli_* или pdo, чтобы избежать массовых обновлений проекта. Также ваш код открыт для инъекции SQL

treyBake 08.04.2019 12:22

Спасибо @treyBake, вы явно не читали мой пост ... Это только внутренние веб-страницы MPLS, и они не выходят в Интернет, поэтому здесь нет проблем.

XSuperDan 08.04.2019 12:34

@XSuperDan и что? используйте лучшие практики и безопасный код .. зачем соглашаться на неправильный код?

treyBake 08.04.2019 12:43

@treyBake, пожалуйста, прочитайте мой пост.... «Кроме того, прежде чем вы заявите, что я должен использовать mysqli или PDO, я знаю, но сервер нельзя обновить, так как существует большое количество страниц, основанных на старом коде».

XSuperDan 08.04.2019 12:52

@XSuperDan хорошо, удачи с этим :)

treyBake 08.04.2019 12:52
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
9
24 560
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы не можете присвоить оператор эха переменной.

Измените это:

$approveremail = echo $result['e_mail'];

К этому:

$approveremail = $result['e_mail']; 
echo $approveremail;

Или даже:

echo $result['e_mail']; 

Кроме того, рассмотрите возможность использования mysqli или PDO вместо функций mysql_. Функция mysql_ устарела и больше не поддерживается в PHP 7.0 и выше.

Взгляните на эту страницу https://www.php.net/manual/en/function.mysql-fetch-array.php

Вам нужно запустить запрос, а затем получить результат

$emailaddress = "SELECT e_mail FROM frm_change_approver WHERE user_id = '$approvingmanagername'";
$result = mysql_query($emailaddress);
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$approveremail = $row['e_mail'];

Кроме того, рассмотрите возможность использования mysql_real_escape_string() для очистки ваших входных данных https://www.php.net/manual/en/function.mysql-real-escape-string.php

Спасибо за это, теперь я получаю эту ошибку; Предупреждение: mysql_fetch_array() ожидает, что параметр 1 будет ресурсом, строка указана в C:\xampp\htdocs\aressoform\php\submitfinanceform.php в строке 18.

XSuperDan 08.04.2019 12:14

Строка 18: $result = mysql_fetch_array($emailaddress);

XSuperDan 08.04.2019 12:14

я отредактировал свой ответ

Donny 08.04.2019 12:20

Большое спасибо за это работает отлично!

XSuperDan 08.04.2019 12:25

Другие вопросы по теме