mysql php中的空白条目

时间:2014-05-26 04:10:32

标签: php mysql database

我是mysql php的新手,我一直在努力使这个简单的名称输入表单工作,但它已经通过插入空白条目失败了。我一直在寻找网络一段时间但没有任何帮助。

这是我的html表单

    <form action="demo.php" method="post"> 
    name:<input type="text" name="input1">
    <br/>
    <input type="submit" value="submit">
    </form>

我的PHP代码

    <?php

    define('db_name', 'demo');
    define('db_user', 'root');
    define('db_password', 'password');
    define('db_host', 'localhost');

    $link = mysql_connect (db_host, db_user, db_password);

    if (!$link) {
       die('could not connect: '. mysql_error());
    }

    $db_selected = mysql_select_db(db_name, $link);

    if (!$db_selected) {
    die('can\'t use' . db_name . ': ' . mysql_error());
    }


    $value = $_post['input1'];

    $sql = "insert into demo (name) values ('$value')";

    if (!mysql_query($sql)) {
      die('Error: ' . mysql_error());
    }

    mysql_close();
    ?>

Mysql表

+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| name  | varchar(30) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+

3 个答案:

答案 0 :(得分:1)

试试这个:

首先检查文本输入的值&amp;然后在查询中使用它。

  

$ value = $ _POST [&#39; input1&#39;];

     

echo $ value;出口;

检查$value。你获得了在文本框中输入的价值吗?

如果是,则在查询中使用它。

- 感谢

答案 1 :(得分:1)

我很惊讶你没有在PHP manual的所有mysql_*函数中看到大红色(粉红色?)警告。总结一下......

  

警告   自PHP 5.5.0起,此扩展已弃用,将来将被删除。相反,应该使用MySQLi或PDO_MySQL扩展。

所以,根据这个建议,我建议你尝试 mysqli

关于你的具体问题,我会说正如弗雷德在评论中所说,$_post应该是$_POST。在PHP中,变量名称区分大小写。

您还应该准备一个INSERT语句并使用参数绑定来避免SQL注入漏洞。

这是一个总结的例子......

$link = new mysqli('localhost', 'root', 'password', 'demo');
if ($link->connect_errno) {
    throw new Exception($link->connect_error, $link->connect_errno);
}

// Check that the expected value has been provided via a POST request
if (!isset($_POST['input1'])) {
    throw new Exception('Missing POST request parameter [input1]');
}

// now prepare an INSERT statement
if (!$stmt = $link->prepare('INSERT INTO `demo` (`name`) VALUES (?)')) {
    throw new Exception($link->error, $link->errno);
}

// bind parameters
$stmt->bind_param('s', $_POST['input1']);

if (!$stmt->execute()) {
    throw new Exception($stmt->error, $stmt->errno);
}

答案 2 :(得分:1)

你也可以使用:$value = filter_input(INPUT_POST, 'var_name'), 当然你应该开始使用PDO。