代码之家  ›  专栏  ›  技术社区  ›  Ondrej Slinták

PHP转义编码引号

  •  1
  • Ondrej Slinták  · 技术社区  · 14 年前

    我有以下代码将一些数据发布到数据库中:

    $post = trim( $post );
    $post = htmlentities( $post, ENT_QUOTES, null, false );
    
    $statement = "INSERT INTO table (row) VALUES (:message)";
    $prepared_posts = $pdo->prepare( $statement );
    $prepared_posts->execute( array( ':message' => $post ) );
    

    我有MySQL版本 5.1.47-community 在localhost和staging/production服务器上,但在这两个服务器上得到的输出是不同的。在本地主机上运行 PHP 5.3.2 ,生产服务器具有 PHP 5.2.14 .

    如果我想宣判 that's "ok" ,在生产时它节省 that\'s \"ok\" ,localhost生成正确的 that's "ok" .

    是什么导致的?可能是MySQL设置吗?我也试过用 mysqli 而不是 PDO 它也做同样的事情。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Gumbo    14 年前

    Magic Quotes that's "ok" that\'s \"ok\" disable them

        2
  •  0
  •   rahim asgari    14 年前

    magic_quotes_gpc on off

    ini_set