Я пытаюсь заполнить 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 пользователей в форме, поскольку я не хочу, чтобы там быть полем адреса электронной почты вообще. Затем я буду использовать заполненную версию, чтобы отправить электронное письмо этому человеку.
Любая помощь будет оценена.
@Mihai Вы можете помочь с этим?
Кроме того, зачем вам LIKE, если вы не используете подстановочный знак? Просто сделай user_id = '$approvingmanagername'
@LelioFaietaСпасибо, я изменил это, и да, это лучший способ его использования, я думаю, что я только что скопировал другой запрос.
mysql_* устарели и удалены в PHP7 — переключитесь сейчас на mysqli_* или pdo, чтобы избежать массовых обновлений проекта. Также ваш код открыт для инъекции SQL
Спасибо @treyBake, вы явно не читали мой пост ... Это только внутренние веб-страницы MPLS, и они не выходят в Интернет, поэтому здесь нет проблем.
@XSuperDan и что? используйте лучшие практики и безопасный код .. зачем соглашаться на неправильный код?
@treyBake, пожалуйста, прочитайте мой пост.... «Кроме того, прежде чем вы заявите, что я должен использовать mysqli или PDO, я знаю, но сервер нельзя обновить, так как существует большое количество страниц, основанных на старом коде».
@XSuperDan хорошо, удачи с этим :)
Вы не можете присвоить оператор эха переменной.
Измените это:
$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.
Строка 18: $result = mysql_fetch_array($emailaddress);
я отредактировал свой ответ
Большое спасибо за это работает отлично!
Вам нужно сначала запустить запрос перед fetch_array, не говоря уже о SQL-инъекции.