0

私はPHPが初めてで、使用しているこのコードの問題が何であるかを理解しようとしました。これは私の最初の MySQL クエリであり、最後の行で「構文エラー、予期しない $end」をスローして窒息しているようです。} の代わりに endwhile を使用してみましたが、解決しなかったので困惑しました。終了の ?> タグは、開始の php タグと一致しているように見えるので、何が欠けているのかわかりません。ここにあります:

<?php
mysql_connect ("ratetable.db.1018.host.com", "ratetable","notmypassword") or die (mysql_error());
mysql_select_db ("rates");
$term = (int)$_POST['term'];
$sql = mysql_query("select * from 'rates' where 'mileage' <= 'term';
while ($row = mysql_fetch_array($sql)){
    echo '<br/> Mileage radius:'.$row[mileage];
    echo '<br/> Rate per mile:'.$row[ratepermile];
    echo '<br/><br/>';
}
?>

誰かが php.ini で短いタグを有効にした投稿を 1 つ見たので、予防措置としてそれを追加しましたが (まだそこにはありませんでした)、何もしませんでした。最後の行が気に入らない理由について空白を描いています。

ご覧いただきありがとうございます。

4

3 に答える 3

4

次の行:

$sql = mysql_query("select * from 'rates' where 'mileage' <= 'term';

次のように変更する必要があります。

$sql = mysql_query("select * from 'rates' where 'mileage' <= 'term'");
于 2013-01-08T21:54:43.717 に答える
1

クエリの後に括弧を閉じません。

$sql = mysql_query("select * from 'rates' where 'mileage' <= 'term'");
于 2013-01-08T21:54:10.813 に答える
0

いくつかのオンライン チュートリアルに従っていると思いますが、使用するチュートリアルの日付と評判に注意する必要があります。これらの関数は、mysqliを支持して廃止されようとしています。これはほとんど同じ構文ですが、最初にステートメントを準備して、インジェクション攻撃から保護することができます。また、同じことを行いますが、異なるデータベースタイプを使用できるため、PDOを確認する必要があります。初心者にとって、それは非常にありそうもないことですが、慣れておくことは非常に重要です。

最後に、Sublime Text 2のような構文とエラーの強調表示を提供する優れたエディターをお勧めします。これにより、将来このような間違いを犯す可能性が低くなります。

何よりも、 PHPマニュアルを読んでください!. これは PHP 開発者にとって最大のリソースであり、古いチュートリアルの代わりにそれを見ていれば、mysql_* が推奨されなくなったことに気付くでしょう。

于 2013-01-08T22:03:35.037 に答える