PHP和MySql有问题

Esp*_*noy 1 php mysql

我在制作这个看似简单的MySql查询工作时遇到了麻烦.谁能发现问题?

<?php
include "config.php";

$offerid = $_POST["offerid"];
$ip = $_SERVER["REMOTE_ADDR"];

mysql_query("INSERT INTO voted (offerid,ip) VALUES (".$offerid.",".$ip.")");
?>
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 5

你可能想要一些单引号:

 "INSERT INTO voted (offerid,ip) VALUES ('" . $offerid . "','" . $ip . "')"
Run Code Online (Sandbox Code Playgroud)

您还应该使用intvalmysql_real_escape_string避免SQL注入漏洞:

 $sql = "INSERT INTO voted (offerid,ip) VALUES (" .
        intval($offerid). ", '" .
        mysql_real_escape_string($ip) . "')";
Run Code Online (Sandbox Code Playgroud)

另一种可能更容易阅读的替代方案是使用sprintf:

 $sql = sprintf("INSERT INTO voted (offerid, ip) VALUES (%d, '%s')",
                $offerid, mysql_real_escape_string($ip));
Run Code Online (Sandbox Code Playgroud)