php - MySQL 数据库的默认字段值

标签 php mysql forms

我正在使用一个 HTML 表单来捕获用户对多个字段的输入,其中一些字段可以由用户留空,一个特定的字段称为“pasref”。如果可能的话,我希望能够做的是,如果用户将该字段留空,则默认值变为文本“未分配”并将其作为记录的一部分保存到一个 mySQL 数据库。

我只是承认我对这种类型的编程相当陌生,我不确定这是否可以在 mySQL 数据库中完成,或者是否需要作为保存每条记录的 php 脚本的一部分来完成。我只是想知道是否有人可以告诉我我需要做什么?

如果有帮助,我已经在下面包含了我的 PHP 脚本。

<?php
require("phpfile.php");
// Gets data from URL parameters
$userid = $_GET['userid'];
$locationid = $_GET['locationid'];
$pasref = $_GET['pasref'];
$additionalcomments = $_GET['additionalcomments'];

// Opens a connection to a MySQL server
$connection = mysql_connect ("hostname", $username, $password);
if (!$connection) {
  die('Not connected : ' . mysql_error());
}

// Set the active MySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
  die ('Can\'t use db : ' . mysql_error());
}

// Insert new row with user data
$query = sprintf("INSERT INTO finds " .
         " (userid, locationid, pasref, additionalcomments ) " .
         " VALUES ('%s', '%s', '%s', '%s');",
         mysql_real_escape_string($userid),
         mysql_real_escape_string($locationid),
         mysql_real_escape_string($pasref),
         mysql_real_escape_string($additionalcomments));

$result = mysql_query($query);

if (!$result) {
  die('Invalid query: ' . mysql_error());
}

?>

最佳答案

可以在mysql的列上设置默认值。您需要执行如下查询:

ALTER TABLE finds MODIFY pasref varchar(100) default 'Not Allocated';

varchar(100) 更改为适合您的字段的任何长度。

或者你可以在 php 中设置它:

if( empty($_GET['pasref']) ) {
    $pasref = 'Not Allocated';
}
else {
    $pasref = $_GET['pasref'];
}

或者最后您可以将其作为默认值放入您的表单中。如果用户需要其他东西,则需要清除它:

<input type="text" name="pasref" value="Not Allocated" />

最后需要注意的是,在您的 PHP 中,您需要使用 mysql_real_escape_string 将您的输入转义到数据库,或者使用带占位符的 PDO。因为你有一个 SQL 注入(inject)漏洞。

使用 POST 也更好。在您的 HTML 中将表单方法更改为 POST 并引用 $_POST 而不是 $_GET

关于php - MySQL 数据库的默认字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7231961/

相关文章:

javascript - 在第一次加载时更快地加载 javascript

php - “云”文件系统存储不起作用 - Laravel 5.1

php - 如何使用 php 签署 android 应用程序?

PHP 和 SQL 登录 - "User Not Found"

mysql - ETIMEOUT 错误 |带有 NodeJS 的 Google Cloud SQL 数据库

javascript - 我在使用 jQuery 遍历新添加的 DOM 元素时遇到问题

html - 下拉菜单间距的联系表格 7 问题

mysql - 如何从其他数据库插入值到mysql

具有日期范围条件的 MySQLi 查询

javascript - 使用 parsleyjs onkeyup 验证