为什么mysql插入查询不能在php应用程序中工作

时间:2016-03-01 04:29:58

标签: php mysql ajax

执行查询时,它不起作用,会打印错误。当我打印它时,$ q也不会来。但$ _SESSION ["用户名"];工作?

      <?php
      session_start();
     $_SESSION["username"];

      include 'Db_Connection.php';
      $q= $_GET[q];

    $username= $_SESSION[username];

   echo $username;
    echo $q;

    $sql="INSERT INTO search(searcher,searched_time,searched_email) 
      VALUES ('$username',NOW(),'$q')";                   

     $result = mysqli_query($con,$sql);

     if($result)
       {
    echo "Success";

        }
       else
       {
       echo "Error";

          }
     ?>

2 个答案:

答案 0 :(得分:0)

我可以从您提供的代码中获取一些东西。

  1. 您的第二行$_SESSION["username"];是多余的,因为它什么都不做
  2. 您正在使用不推荐使用的mysql_ *函数
  3. 您没有使用预准备语句将变量插入查询
  4. 尝试这样的事情:

    session_start();
    
    //start assuming this is in your connection file
    $con = new mysqli("db-ip-address", "db-user", "db-pass", "db-name")
    //end assuming
    
    $q= $_GET[q];
    
    $username= $_SESSION[username];
    
    echo $username;
    echo $q;
    
    $sql="INSERT INTO search(searcher,searched_time,searched_email) VALUES (?,NOW(),?)";
    $stmt = $con->prepare($sql);
    $stmt->bind_param("ss", $username, $q);
    $result = $stmt->execute();
    
    if($result) {
        echo "Success";
    } else {
        echo "Error";
    }
    
    //remember to cleanup connections etc
    

    就值$ q未打印输出而言,请确保通过GET查询字符串http://someurl.com/somefile.php?q=some-value设置该值,并且$q不是一些奇怪的不可打印值。如果要确认该值已设置,请尝试运行var_dump($_GET)以输出$_GET数组的内容,以确保实际设置了值。

答案 1 :(得分:0)

我相信这是你的问题:

$q = $_GET['q'];

q应该用引号括起来,例如:

for (Obj o : objectList)

除此之外,达蒙所说的完全正确。