MySQL INSERT INTO什么都不做 - 甚至没有错误

时间:2012-07-29 20:56:13

标签: php mysql insert

我有这个问题:

mysql_query("INSERT INTO `63_Activity` (`username`, `time`) VALUES (`$usernann2`, `$date`)");

然而,它没有做任何事情。即使我尝试将变量更正为

". $variable ." 

我检查了变量。

我从它工作的某个地方复制了一小段代码。

数据库和表格已存在。

我以为我控制了事情,然后发生了 - .-

提前谢谢。

PS:我尝试添加或死() - 但没有错误。什么都没有。

3 个答案:

答案 0 :(得分:1)

值必须是单引号('),而不是反引号(`)

mysql_query("INSERT INTO `63_Activity` (`username`, `time`) VALUES ('$usernann2', '$date')");

您还应该确保清理输入,最好不要使用mysql_函数代替mysqli_

答案 1 :(得分:0)

尝试将查询放入变量并回显它,看看是否有什么问题,尝试在php上运行它我的管理员也

答案 2 :(得分:0)

最好使用Paramaterized查询,如下例所示:

 <?php

try {
    $usernann2 = "whateverUsernameFits";
    $date = new DateTime('2000-01-01');
    $stmt = $this->db->prepare ( "INSERT INTO 63_Activity (username, time) VALUES (:usernann2, :date)");
    $stmt->bindParam ( ':usernann2', $usernann2 );
    $stmt->bindParam ( ':date', $date );        
    $stmt->execute ();
}catch ( PDOException $e ) 
        {
            throw new Exception ( $this->db->errorInfo () . 'Problem inserting object ' );
        } catch ( Exception $e ) {
            throw new \Exception ( 'Problem inserting object ' );
        }

        ?>

绑定参数是防止SQL注入攻击的主要内容。抛出的异常将为您提供有关查询中可能存在的问题的线索(如果有)。我通常首先检查查询以确保它使用实际值。从那里开始,这是一个消除的过程。

PS。有关SQL注入的更多信息,请https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet。您还应该能够在Stackoverflow上找到有关SQL注入的一些优秀信息和问题。