php - 通过 php 页面插入表不工作并且没有错误

标签 php mysql

我有这段代码要插入到表格中。我对 INSERT INTO 类别的问题是它从不将数据插入表中并且没有错误。我在不同表的代码中使用几乎相同的查询,并且它正在工作。有什么线索吗?

<?php 
$action = $_GET['action'] ; 
if ($action=='question')
  question();
elseif ($action=='categories')
  categories();

function question() {
  if ((isset($_SESSION['loggedin']) &&  $_SESSION['loggedin'] == true))
  {
    $include("db.php");
    $category = $_POST['category'] ; 
    $subcategory = $_POST['subCategory'] ; 
    $question = $_POST['question'] ; 
    $answer = $_POST['answer'] ; 

    $query = "INSERT INTO faq (category,subcategory,question,answer)   
      VALUES('.$category.','.$subcategory.','.$question.','.$answer')";
    $success = mysql_query($query);

    if ($success)
    {
      echo '<a href="admin.php" >done >';       
    }
    else 
    {
      echo mysql_error();
    }

  }
}


function categories(){
  if ( ! (isset($_SESSION['loggedin']) && ! $_SESSION['loggedin'] == true))
  {
    include("db.php");
    $category = $_POST['category'] ; 
    $subcategory = $_POST['subCategory'] ; 

    $query = "INSERT INTO categories (category,subcategory)
      VALUES( '$category' , '$subcategory')";
    $success = mysql_query($query);

    if ($success)
    {
      echo '<a href="admin.php" >done>';
    }
    else 
    {
      echo mysql_error();
    }

  }
}
?>

最佳答案

几个问题:

  • 如果您要将变量组合成一个字符串,您可以使用“.”字符连接它们,或者您可以在字符串中包含变量,只要字符串用双引号括起来即可。在您的代码中,您同时执行了这两项操作。
  • 您没有对您的数据库输入进行清理。
  • 您对“类别”功能的逻辑检查不正确。
  • 您的超链接标签缺少结束标签。

请参阅下面的修改后的代码。

<?php 

$action = $_GET['action'];

if( $action=='question' )
  question();
elseif( $action=='categories' )
  categories();

function question(){
  if( isset( $_SESSION['loggedin'] ) &&  $_SESSION['loggedin'] == true ){

    include( 'db.php' );

    $category = mysql_real_escape_string( $_POST['category'] ); 
    $subcategory = mysql_real_escape_string( $_POST['subCategory'] ); 
    $question = mysql_real_escape_string( $_POST['question'] );
    $answer = mysql_real_escape_string( $_POST['answer'] );

    $query = "INSERT INTO faq ( category , subcategory , question , answer ) VALUES( '{$category}' , '{$subcategory}' , '{$question}' , '{$answer}' )";

    echo "SQL Query to execute: $query"; # Debug Message

    $success = mysql_query( $query );

    if ( $success ){
      echo '<a href="admin.php">done</a>'; 
    }else{
      echo mysql_error();
    }

  }
}


function categories(){
  if( !( isset( $_SESSION['loggedin'] ) || $_SESSION['loggedin']==true ) ){

    include( 'db.php' );
    $category = mysql_real_escape_string( $_POST['category'] ); 
    $subcategory = mysql_real_escape_string( $_POST['subCategory'] );

    $query = "INSERT INTO categories ( category , subcategory ) VALUES ( '{$category}' , '{$subcategory}' )";

    echo "SQL Query to execute: $query"; # Debug Message

    $success = mysql_query( $query );

    if( $success ){
      echo '<a href="admin.php">done</a>';
    }else{
      echo mysql_error();
    }

  }
}

关于php - 通过 php 页面插入表不工作并且没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7137631/

相关文章:

php - 检测准备好的语句中的错误

php - 通过多个条件查找表中的重复记录

javascript - 如何将图像数据 uri 从 javascript 传递到 php

java - 如何更改hibernate为主键字段插入的默认值?

php - Codeigniter - 计算两个日期之间的日期

php - 安装扩展后在 PHP 中激活 mbstring

php - 使用 curl 从 SSL 下载图像?

mysql - 使用 SSL 和命令行 Flywaydb ( flyway ) 部署数据库更改

mysql - 在 Snow Leopard 上启动 MySQL 错误

php - 在 Laravel 的 Eloquent ORM 中的数据透视表数据中使用 order by