0

自己得到以下错误,我似乎无法弄清楚为什么:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“s-Gravenmoer”附近使用正确的语法

这是 SQL 语法:

$plaats = $row['plaats'];    

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

对于那些感兴趣的人,该变量具有以下内容:'s-Gravenmoer

为什么它给我一个错误?谢谢!

4

2 回答 2

2

这是因为 的值$plaats包含单引号。

您的代码很容易发生SQL 注入。使用PDOMYSQLI

使用 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_stringhtmlspecialchars

$plaats = $row['plaats'];    

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