我如何在数据库中插入段落

时间:2014-04-05 12:16:09

标签: php mysql database mysqli

我是PHP的新手,我试图通过php

在数据库中插入段落

我的代码

<html>
<body>
<?php
include("config.php");

$sql= mysql_qurey("INSERT into paragraph (event_head_1, event_1) VALUES
('$_POST[event]', '$_POST[description]' ");
if (!mysqli_query($sql))
        {
            die('Error: ' . mysqli_error($con));
        }
        else echo "1 record added";
?>






<table align="left">
<tr>
<td colspan="3"><strong>Paragraph </strong></td><br>
<td>
</td>
</tr>
<td>Event</td>
<td>:</td>
<td><input name="event" name="event" type="text" id="event"></td><br>
</tr>
<tr>
<td>Description</td>
<td>:</td>
<td><textarea name="description" value="description" name="description"></textarea></td>
<td>
</td>
<tr>

<td><input type="submit" name="Submit" value="Submit"></td>
</tr>
</table>
</td>
</form>

</body>
</html>

此程序后出现错误

错误

  

致命错误:调用未定义的函数mysql_qurey()   第6行的C:\ xampp \ htdocs \ SRK \ admin \ admin.php

请给我一些建议

4 个答案:

答案 0 :(得分:0)

您在语句中缺少结束括号:

$sql="INSERT into paragraph (event_head_1, event_1) VALUES
('$_POST[event]', '$_POST[description]') ";
                                       ^ that one.

另外,将POST值直接传递给数据库是一种非常糟糕的形式,你应该研究SQL注入并稍微纠正一下 - 但这是一个非常冗长的故事。

你似乎在各种mysql_和mysqli_函数之间也有一些混淆。

答案 1 :(得分:0)

你的代码有很多问题..

  • mysql_query不是mysql_qurey()
  • 您正在混淆mysql_*mysqli_*个功能
  • 即使它是mysql_query,您也会运行两次查询。
  • 您对SQL注入攻击持开放态度。

mysql_*)扩展程序自PHP 5.5.0起已弃用,将来会被删除。相反,应使用MySQLiPDO_MySQL扩展的准备语句来抵御SQL注入攻击!

答案 2 :(得分:0)

试试这个

<!DOCTYPE html>
<html>
<body>
<?php
include("config.php");
if (isset($_POST["submit"])
{
    $event=$_POST['event'];
    $desc=$_POST['description'];

    $sql= mysql_qurey("INSERT into paragraph (event_head_1, event_1) VALUES
    ('$event', '$desc' ") or die ("cannot insert".mysql_error());
    if ($sql)
    {
        echo "1 record added";
    }
}
?>
<form action="" method="post">
<table align="left">
<tr>
   <td colspan="3">
      <strong>Paragraph </strong>
   </td>
</tr>
   <td>Event</td>
   <td>:</td>
   <td><input name="event" name="event" type="text" id="event"></td><br>
</tr>
<tr>
   <td>Description</td>
   <td>:</td>
   <td>
     <textarea name="description" value="description" name="description"></textarea>         </td>
<tr>
    <td colspan="3"><input type="submit" name="submit" value="Submit"></td>
</tr>
</table>
</form>
</body>
</html>

答案 3 :(得分:0)

修改

您还错过了一个开放的<form>代码并执行了mysqli_query两次并且name="description"name="event"两次。

假设您在数据库连接中使用基于mysqli_*的函数,因为您在if (!mysqli_query($sql))中使用它。


你有点混合你的SQL API mysqli_*mysql_*

从您想要使用的mysql_qurey

中我可以看出来

这是一个拼写错误,如果任何内容,应该读作mysql_query

使用mysqli_query

但是,这样做会让您对SQL injection开放。

<html>
<body>
<?php
include("config.php");

if(isset($_POST['Submit'])){

$sql= "INSERT into paragraph (event_head_1, event_1) VALUES
('$_POST[event]', '$_POST[description]'");
if (!mysqli_query($con,$sql))
        {
            die('Error: ' . mysqli_error($con));
        }
        else { echo "1 record added"; }

}
?>

<form action="" method="post">
<table align="left">
<tr>
<td colspan="3"><strong>Paragraph </strong></td><br>
<td>
</td>
</tr>
<td>Event</td>
<td>:</td>
<td><input name="event" type="text" id="event"></td><br>
</tr>
<tr>
<td>Description</td>
<td>:</td>
<td><textarea value="description" name="description"></textarea></td>
<td>
</td>
<tr>

<td><input type="submit" name="Submit" value="Submit"></td>
</tr>
</table>
</td>
</form>

</body>
</html>

旁注:您目前的代码向SQL injection开放。使用prepared statementsPDO