PHP,在插入数据库时得到空白站点.table


PHP, getting blank site when doing INSERT into database.table

我只想说,这里很可能会很简单。

我在一个网站上工作,用户基本上用一些数据填写一个表单,这些数据在提交时被发送(GET(到另一个php页面,该页面的标题下包括我的数据库连接脚本,然后以INSERT的形式执行SQL查询。此页显示为空白。我有一些html元素,如果没有mysql_error((,这些元素就会显示出来。

这是页面的样子,我做错了什么?

           <?php                                                                          
          include '/partials/header.php';                                              
          include '/functions/db_connection.php';                                      
           if(isset($_POST['value0'])) {                                                
            $value0 = mysql_real_escape_string($_POST["value0"]);                        
            $value1 = mysql_real_escape_string($_POST["value1"]);                  
            $value2 = mysql_real_escape_string($_POST["value2"]);                
            $value3 = mysql_real_escape_string($_POST["value3"]);                  
            $value4 = mysql_real_escape_string($_POST["value4"]);                        
            $value5 = date("d-m-Y");                                                     
            $query = "INSERT INTO db.my_table(value0, value1, value2, value3, value4, value5, value6, value7) 
                      VALUES ('. $value0 .',                                        
                                '. $value1 .',                                       
                                '. $value2 .',                                       
                                '. $value3 .', 
                                '. $value4 .',                                          
                                '. $value5 .',                                          
                                'enum-value', 
                                '. $value7 .');";                                        
              $result = mysql_query($query);                                           
              if(!$result)                                                             
              {
                //something went wrong, display the error                              
                echo 'Congratulations, something went wrong. You are officially retarded.<br /><br />' . mysql_error();
                $sql = "ROLLBACK;";
                $result = mysql_query($sql);                                           
              } 
              else
              {                                                                        
                $sql = "COMMIT;";                                                      
                $result = mysql_query($sql);                                           
        ?>      
          <div class="box">                                                            
            <h1 class="green">That's it!</h1>                                       
            <p>Let's do some more novice php scripting.</p>
          </div>
        <?php
      }
    }
?>

这是我的连接文件:

    <?php
    $server = "servername";
    $userName = "username";
    $password = "password";
    $db = "db";       
    $con = mysql_connect($server,$userName,$password,$db);  
    if (mysqli_connect_errno($con)) 
    {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
?> 

您的字符串有错误的引号或至少有错误的串联。。。

$query = "INSERT INTO yada yada
          VALUES ('. $value0 .', 
                  ^---

您已经启动了一个双引号字符串,因此不需要将变量"串联"到字符串中。例如CCD_ 1将正常工作。因此,要么切换到双引号:

  VALUES ('" . $value0 . "' ...
           ^--           ^--

或者简单地消除级联的尝试:

  VALUES('$value0', ....

更改此代码块

$query = "INSERT INTO db.my_table(value0, value1, value2, value3, value4, value5, value6, value7) 
          VALUES ('. $value0 .',                                        
                    '. $value1 .',                                       
                    '. $value2 .',                                       
                    '. $value3 .', 
                    '. $value4 .',                                          
                    '. $value5 .',                                          
                    'enum-value', 
                    '. $value7 .');";

到这个

$query = "INSERT INTO db.my_table(value0, value1, value2, value3, value4, value5, value6, value7) 
          VALUES ('. $value0 .',                                        
                    '. $value1 .',                                       
                    '. $value2 .',                                       
                    '. $value3 .', 
                    '. $value4 .',                                          
                    '. $value5 .',                                          
                    'enum-value', 
                    '. $value7 .')";
$query = "INSERT INTO db.my_table(value0, value1, value2, value3, value4, value5, value6, value7) 
              VALUES ('". $value0 ."',                                        
                        '". $value1 ."',                                       
                        '". $value2 ."',                                       
                        '". $value3 ."', 
                        '". $value4 ."',                                          
                        '". $value5 ."',                                          
                        'enum-value', 
                        '". $value7 ."')"; 

查询中的引号做错了。请参见上文。您应该使用".."来进入变量领域,而不是".-"因为您的字符串是使用".

启动的