1. ホーム
  2. php

[解決済み] PHPでMySqlからselectクエリを実行すると「Parse error: syntax error, unexpected 'echo' (T_ECHO)」と表示されるのを修正する方法【重複】。

2022-02-07 14:02:10

質問

MySql のクエリから php のベリファイを生成し、後で php 経由で電子メールを送信する際に使用しようと考えています。ベリファイに入力するための以下のコードをご覧ください。mysql_connect と mysql_select_db は、ライブのデータベースであり、接続が動作することは分かっているため、含めていません。また、私はmysqliまたはPODを使用する必要があることを述べる前に、私は知っているが、古いコードに依存している多くのページがあるので、サーバーは更新することができない。

エラー - 解析エラー: 構文エラー、予期しない 'echo' (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'];

なぜなら、ユーザーのメールアドレスはすでにデータベースに登録されており、ユーザーが間違ったメールアドレスを入力すると困るからです。メールアドレスフィールドは必要ないので、フォームにユーザーのuser_idだけを取り込みます。その後、入力された値を使用して、その人にメールを送信します。

何かありましたら、ご連絡ください。

解決方法は?

echo文は変数に代入できません。

これを変更します。

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

これに

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

あるいは、さらに

echo $result['e_mail']; 

さらに、mysql_ function の代わりに mysqli や PDO を使うことを検討してください。mysql_ function は非推奨で、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