Latest web development tutorials

MySQL 插入數據

MySQL 插入數據

MySQL表中使用INSERT INTO SQL語句來插入數據。

你可以通過mysql> 命令提示窗口中向數據表中插入數據,或者通過PHP腳本來插入數據。

語法

以下為向MySQL數據表插入數據通用的INSERT INTO SQL語法:

INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( value1, value2,...valueN );

如果數據是字符型,必須使用單引號或者雙引號,如:"value"。


通過命令提示窗口插入數據

以下我們將使用SQL INSERT INTO語句向MySQL數據表w3big_tbl插入數據

實例

以下實例中我們將想w3big_tbl 表插入三條數據:

root@host# mysql -u root -p password;
Enter password:*******
mysql> use w3big;
Database changed
mysql> INSERT INTO w3big_tbl 
     ->(w3big_title, w3big_author, submission_date)
     ->VALUES
     ->("Learn PHP", "John Poul", NOW());
Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO w3big_tbl
     ->(w3big_title, w3big_author, submission_date)
     ->VALUES
     ->("Learn MySQL", "Abdul S", NOW());
Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO w3big_tbl
     ->(w3big_title, w3big_author, submission_date)
     ->VALUES
     ->("JAVA Tutorial", "Sanjay", '2007-05-06');
Query OK, 1 row affected (0.01 sec)
mysql>

注意:使用箭頭標記(->)不是SQL語句的一部分,它僅僅表示一個新行,如果一條SQL語句太長,我們可以通過回車鍵來創建一個新行來編寫SQL語句,SQL語句的命令結束符為分號(;)。

在以上實例中,我們並沒有提供w3big_id 的數據,因為該字段我們在創建表的時候已經設置它為AUTO_INCREMENT(自動增加) 屬性。 所以,該字段會自動遞增而不需要我們去設置。 實例中NOW() 是一個MySQL 函數,該函數返回日期和時間。


使用PHP腳本插入數據

你可以使用PHP的mysql_query()函數來執行SQL INSERT INTO命令來插入數據。

該函數有兩個參數,在執行成功時返回TRUE,否則返回FALSE。

語法

bool mysql_query( sql, connection );
參數 描述
sql 必需。 規定要發送的SQL 查詢。 註釋:查詢字符串不應以分號結束。
connection 可選。 規定SQL 連接標識符。 如果未規定,則使用上一個打開的連接。

實例

以下實例中程序接收用戶輸入的三個字段數據,並插入數據表中:

<html>
<head>
<meta charset="utf-8"> 
<title>向 MySQL 数据库添加数据</title>
</head>
<body>
<?php
if(isset($_POST['add']))
{
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}

if(! get_magic_quotes_gpc() )
{
   $w3big_title = addslashes ($_POST['w3big_title']);
   $w3big_author = addslashes ($_POST['w3big_author']);
}
else
{
   $w3big_title = $_POST['w3big_title'];
   $w3big_author = $_POST['w3big_author'];
}
$submission_date = $_POST['submission_date'];

$sql = "INSERT INTO w3big_tbl ".
       "(w3big_title,w3big_author, submission_date) ".
       "VALUES ".
       "('$w3big_title','$w3big_author','$submission_date')";
mysql_select_db('w3big');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not enter data: ' . mysql_error());
}
echo "Entered data successfully\n";
mysql_close($conn);
}
else
{
?>
<form method="post" action="<?php $_PHP_SELF ?>">
<table width="600" border="0" cellspacing="1" cellpadding="2">
<tr>
<td width="250">Tutorial Title</td>
<td>
<input name="w3big_title" type="text" id="w3big_title">
</td>
</tr>
<tr>
<td width="250">Tutorial Author</td>
<td>
<input name="w3big_author" type="text" id="w3big_author">
</td>
</tr>
<tr>
<td width="250">Submission Date [ yyyy-mm-dd ]</td>
<td>
<input name="submission_date" type="text" id="submission_date">
</td>
</tr>
<tr>
<td width="250"> </td>
<td> </td>
</tr>
<tr>
<td width="250"> </td>
<td>
<input name="add" type="submit" id="add" value="Add Tutorial">
</td>
</tr>
</table>
</form>
<?php
}
?>
</body>
</html>

在我們接收用戶提交的數據時,為了數據的安全性我們需要使用get_magic_quotes_gpc() 函數來判斷特殊字符的轉義是否已經開啟。 如果這個選項為off(未開啟),返回0,那麼我們就必須調用addslashes 這個函數來為字符串增加轉義。

義。

你也可以添加其他檢查數據的方法,比如郵箱格式驗證,電話號碼驗證,是否為整數驗證等。