MySQL INSERT INTO没有';Don’不要做任何事,甚至不要犯错


MySQL INSERT INTO doesn't do anything - not even error

我有这个查询:

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

然而,它没有任何作用。甚至当我尝试将变量更正为时

". $variable ." 

我检查了变量。

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

数据库和表已存在。

我只是觉得事情已经控制住了,然后事情就发生了

提前谢谢。

PS:我试着添加或die(),但没有错误。没有什么

值需要使用单引号('),而不是反引号(`)

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

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

您最好使用参数化查询,如下例所示:

 <?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。https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet有关SQL注入的详细信息。您还应该能够在这里找到一些关于SQL注入的Stackoverflow的优秀信息和问题。

尝试将查询放在一个变量中并回显它,看看是否有任何错误,尝试在php上运行它my-admin也