0

我只想说,这里很可能会变得相当简单。

我正在一个网站上工作,用户基本上填写一个表单,其中包含一些数据,这些数据在提交时被发送(GET)到另一个 php 页面,该页面在标题下方包含我的 db-connection 脚本,然后继续执行INSERT 形式的 SQL 查询。此页面仅显示为空白。如果没有 mysql_error(),我有一些应该显示的 html 元素。

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

           <?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();
    }

?> 
4

3 回答 3

2

您的字符串引用错误或至少连接错误...

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

您已经开始使用双引号字符串,因此变量不需要“连接”到字符串中。例如$x = "hello $there how are you"会正常工作。所以要么在整个过程中切换到双引号:

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

或简单地消除连接的尝试:

  VALUES('$value0', ....
于 2013-04-08T19:45:02.713 回答
0

更改此代码块

$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 .')";
于 2013-04-08T19:45:28.160 回答
0
$query = "INSERT INTO db.my_table(value0, value1, value2, value3, value4, value5, value6, value7) 
              VALUES ('". $value0 ."',                                        
                        '". $value1 ."',                                       
                        '". $value2 ."',                                       
                        '". $value3 ."', 
                        '". $value4 ."',                                          
                        '". $value5 ."',                                          
                        'enum-value', 
                        '". $value7 ."')"; 

查询中的报价错误。看上面。您应该使用“..”来进入可变领域,而不是 '. - 因为您的字符串是使用 ".

于 2013-04-08T19:45:45.853 回答