使用HTML表单执行PHP脚本

时间:2014-04-24 06:48:29

标签: php html mysql

亲爱的,亲爱的,为什么我总是无法学习php,如果有人能帮助我,将不胜感激。 :'( 我在这里一步步跟进:

http://www.w3schools.com/php/php_mysql_insert.asp

但当我点击按钮提交查询没有任何反应时,只显示一个空白的白色屏幕,我没有看到数据库上的新数据?

enter image description here

<html>
<body>

<form action="insert.php" method="post">
Firstname: <input type="text" name="firstname">
Lastname: <input type="text" name="lastname">
Age: <input type="text" name="age">
<input type="submit">
</form>

</body>
</html> 

    <?php
    $con=mysqli_connect("localhost","root","","garutexpress");
    // Check connection
    if (mysqli_connect_errno())
      {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }

    $sql="INSERT INTO Persons (FirstName, LastName, Age)
    VALUES
    ('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";

    if (!mysqli_query($con,$sql))
      {
      die('Error: ' . mysqli_error($con));
      }
    echo "1 record added";

    mysqli_close($con);
   ?> 

如果数据成功添加它应该给 echo“添加1条记录”;但我从来没有看到这个消息。

5 个答案:

答案 0 :(得分:1)

您的表名是&#34;人员&#34;,不是&#34;人员&#34;

进行查询时,表名必须与数据库中的名称相同。如果你查看phpMyAdmin,你的表是&#34;人员&#34;小写

根据以下编辑: @I Can Has Cheezburger

请在代码中更改表格的名称,并确保相应地包装引号:

  <?php
    $con=mysqli_connect("example.com","peter","abc123","my_db");
    // Check connection
    if (mysqli_connect_errno())
      {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }



    $sql='INSERT INTO persons (Firstname, Lastname, Age)
VALUES
("'.$_POST['firstname'].'","'.$_POST['lastname'].'","'.$_POST['age'].'");

    if (!mysqli_query($con,$sql))
      {
      die('Error: ' . mysqli_error($con));
      }
    echo "1 record added";

    mysqli_close($con);
   ?> 

答案 1 :(得分:1)

常见错误,您没有用引号包装POST数组索引。

这样做:

$sql='INSERT INTO persons (FirstName, LastName, Age)
VALUES
("'.mysqli_real_escape_string($con,$_POST['firstname']).'","'.mysqli_real_escape_string($con,$_POST['lastname']).'","'.mysqli_real_escape_string($con,$_POST['age']).'");

另外,正如@seblaze所提到的,表名称区分大小写,因此请使用persons代替Persons

为了更安全,请使用预准备语句。

答案 2 :(得分:0)

  1. 空白屏幕表示您处理某些错误的大部分时间。您必须为本地开发启用错误报告。 How do I enable error reporting in PHP?

  2. 检查您的列名是否在脚本中写入了camelCase,但未在数据库中写入。

  3. 在大多数情况下,拥有一个ID列是您唯一的标识符很方便。

  4. 良好做法:开始使用PDO

答案 3 :(得分:0)

首先,

您需要将PHP配置更新为:
memory_limit = 64M
确保增加内存。

然后,您需要使用.htaccess文件启用错误报告,或使用php.ini进行配置。 Read this for help

之后你可以调试你的工作。

答案 4 :(得分:0)

试试这个代码, http://www.tizag.com/mysqlTutorial/mysqlinsert.php

在w3schools中它使用了mysqli我也遇到了一些问题。

在链接中它有一些示例代码,它使用mysql