簡體   English   中英

mysql php中的空白條目

[英]blank entries in mysql php

我是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    |                |
+-------+-------------+------+-----+---------+----------------+

嘗試這個:

首先檢查文本輸入的值,然后在查詢中使用它。

$ value = $ _POST ['input1'];

echo $ value; 出口;

檢查$value 您獲得在文本框中輸入的值嗎?

如果是,則在查詢中使用它。

- 謝謝

我很驚訝您沒有在PHP手冊中的所有mysql_*函數上看到大的紅色警告(粉紅色?)警告。 總結一下...

警告此擴展自PHP 5.5.0起不推薦使用,以后將被刪除。 相反,應使用MySQLi或PDO_MySQL擴展。

因此,根據該建議,建議您嘗試mysqli

關於您的特定問題,我想說的就是Fred在評論中所說的, $_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);
}

也可以使用: $value = filter_input(INPUT_POST, 'var_name') ,當然,您應該開始使用PDO。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM