使用$ _POST值简单'插入表'

时间:2014-02-15 15:53:20

标签: php mysql sql

大家都过得愉快,感谢您想帮助我。 我在这里有一个非常简单的INSERT INTO table() VALUE ()语句,但由于某些原因它似乎不起作用。 我知道很多人已经问过这样的问题,但是对于我自己的问题困扰我的是mysqli_error()字符串是空的,并没有给我任何关于可能出错的提示。< / p>

以下是代码:

       <?php
        $connection = mysql_connect("database","username","password");

        // Check connection
        if (!$connection)
        {
            echo "Connection failed: " . mysql_connect_error();
        }
        else
        {
            echo "Inserting...";

            $sql="INSERT INTO test1 (StudentID)
            VALUES('$_POST[StudentID]')";
            echo "Insert complete!";
        }

            if (mysql_query($connection,$sql))
            {
                echo "1 record added";
            }
            else
            {
                echo "Error: " . mysqli_error($connection);                
            }
        mysqli_close($connection);
    ?>

我收到的所有内容都是:

Inserting...Insert complete!Error:

我很抱歉用简单的东西浪费你的时间,但是..这是我第一次使用数据库,而我错过了什么错误(可能是某个地方的语法错误?找不到它自己)

4 个答案:

答案 0 :(得分:1)

你有很多错误

// Open connection
$cn = mysql_connect("database","username","password") or die('Connection failed: ' . mysql_error() );

// Check if param is set
if( !isset($_POST['StudentID']) )
    die('Param error');

echo "Inserting...";

// Query with escaped special char
$SQL = sprintf("INSERT INTO test1 (StudentID) VALUES('%s')",
        mysql_real_escape_string($_POST['StudentID'], $cn)
);

// Execute query
$Result = mysql_query($SQL, $cn) or die(mysql_error($cn));

// Check if record inserted
if( mysql_affected_rows($cn) > 0 )
    echo "Insert complete!";
else
    echo "Insert FAIL!";

// Close connection
mysql_close($cn);

NB使用pdo或mysqli_,不推荐使用mysql_

答案 1 :(得分:0)

如评论中所述,不要使用mysql * funtcions,而是使用mysqli *函数,并且你同时使用它们,任何标准都不会有什么好处

对于你的错误,不要像这样写

$sql="INSERT INTO test1 (StudentID) VALUES('$_POST[StudentID]')";

定义你的post变量,然后尝试将其传递给数据库

喜欢这个

$student = $_POST[StudentID];
$sql="INSERT INTO test1 (StudentID) VALUES( $student )";

BR的

答案 2 :(得分:0)

mysql_connect函数应具有主机名,例如mysql_connect(HOST,USER,PASS)

请参阅文档http://bd1.php.net/function.mysql-connect
您还将mysql_*mysqli_*混合在一起。您应该使用mysqli_*,因为mysql_*函数已被弃用。

您还需要先检查$_POST['StudentID']

  echo "Inserting...";
  if(isset($_POST['StudentID'])) {

    $sql="INSERT INTO test1 (StudentID)
    VALUES('$_POST[StudentID]')";
    echo "Insert complete!";
  } 
  else {
     echo "no id found!";
   }

答案 3 :(得分:0)

请在下面这段代码

<?php
    $connection = mysql_connect("host","username","password");

    // Check connection
    if (!$connection)
    {
        echo "Connection failed: " . mysql_connect_error();
    }
    else
    { 
    mysql_select_db("DB",$connection);
        echo "Inserting...";

        $sql="INSERT INTO test1 (StudentID)
        VALUES('$_POST[StudentID]')";
        echo "Insert complete!";
    }

        if (mysql_query($connection,$sql))
        {
            echo "1 record added";
        }
        else
        {
            echo "Error: " . mysql_error($connection);                
        }

    mysql_close($connection);

?>