0

次のエラーが発生しましたが、その理由がわかりません。

SQL 構文にエラーがあります。1行目の「s-Gravenmoer」付近で使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください

これは SQL 構文です。

$plaats = $row['plaats'];    

$query10 = "SELECT * FROM gebieden WHERE plaats = '$plaats'"; 

興味のある方のために、変数の内容は次のとおりです: 's-Gravenmoer

エラーが発生するのはなぜですか?ありがとう!

4

2 に答える 2

2

の値に$plaats一重引用符が含まれているためです。

あなたのコードはSQL インジェクションの影響を受けやすいです。PDOまたはMYSQLIを使用する

PDO 拡張機能の使用例:

<?php
    $stmt = $dbh->prepare("SELECT * FROM gebieden WHERE plaats = ?");
    $stmt->bindParam(1, $plaats);
    if ($stmt->execute()) 
    {
      while ($row = $stmt->fetch()) 
      {
        print_r($row);
      }
    }
?>

これにより、一重引用符でレコードを検索できます。

于 2012-09-10T08:17:35.793 に答える
2

mysql_real_escape_stringまたは_htmlspecialchars

$plaats = $row['plaats'];    

$query10 = "SELECT * FROM gebieden WHERE plaats = '".mysql_real_escape_string($plaats)."';";
于 2012-09-10T08:20:59.030 に答える