MySQL中insert语句的使用与优化教程
的有关信息介绍如下:MySQL表中使用INSERTINTOSQL语句来插入数据。
你可以通过mysql>命令提示窗口中向数据表中插入数据,或者通过PHP脚本来插入数据。
语法
以下为向MySQL数据表插入数据通用的INSERTINTOSQL语法:
INSERTINTOtable_name(field1,field2,...fieldN)VALUES(value1,value2,...valueN);如果数据是字符型,必须使用单引号或者双引号,如:"value"。
通过命令提示窗口插入数据
以下我们将使用SQLINSERTINTO语句向MySQL数据表runoob_tbl插入数据
实例
以下实例中我们将想runoob_tbl表插入三条数据:
root@host#mysql-uroot-ppassword;Enterpassword:*******mysql>useRUNOOB;Databasechangedmysql>INSERTINTOrunoob_tbl->(runoob_title,runoob_author,submission_date)->VALUES->("LearnPHP","JohnPoul",NOW());QueryOK,1rowaffected(0.01sec)mysql>INSERTINTOrunoob_tbl->(runoob_title,runoob_author,submission_date)->VALUES->("LearnMySQL","AbdulS",NOW());QueryOK,1rowaffected(0.01sec)mysql>INSERTINTOrunoob_tbl->(runoob_title,runoob_author,submission_date)->VALUES->("JAVATutorial","Sanjay",'2007-05-06');QueryOK,1rowaffected(0.01sec)mysql>注意:使用箭头标记(->)不是SQL语句的一部分,它仅仅表示一个新行,如果一条SQL语句太长,我们可以通过回车键来创建一个新行来编写SQL语句,SQL语句的命令结束符为分号(;)。
在以上实例中,我们并没有提供runoob_id的数据,因为该字段我们在创建表的时候已经设置它为AUTO_INCREMENT(自动增加)属性。所以,该字段会自动递增而不需要我们去设置。实例中NOW()是一个MySQL函数,该函数返回日期和时间。
使用PHP脚本插入数据
你可以使用PHP的mysql_query()函数来执行SQLINSERTINTO命令来插入数据。
该函数有两个参数,在执行成功时返回TRUE,否则返回FALSE。
语法
boolmysql_query(sql,connection);参数:
sql:必需,规定要发送的SQL查询,注意、查询字符串不应以分号结束。
connection:可选,规定SQL连接标识符,如果未规定,则使用上一个打开的连接。
实例
以下实例中程序接收用户输入的三个字段数据,并插入数据表中:
<html><head><title>向MySQL数据库添加数据</title></head><body><?phpif(isset($_POST['add'])){$dbhost='localhost:3036';$dbuser='root';$dbpass='rootpassword';$conn=mysql_connect($dbhost,$dbuser,$dbpass);if(!$conn){die('Couldnotconnect:'.mysql_error());}if(!get_magic_quotes_gpc()){$runoob_title=addslashes($_POST['runoob_title']);$runoob_author=addslashes($_POST['runoob_author']);}else{$runoob_title=$_POST['runoob_title'];$runoob_author=$_POST['runoob_author'];}$submission_date=$_POST['submission_date'];$sql="INSERTINTOrunoob_tbl"."(runoob_title,runoob_author,submission_date)"."VALUES"."('$runoob_title','$runoob_author','$submission_date')";mysql_select_db('RUNOOB');$retval=mysql_query($sql,$conn);if(!$retval){die('Couldnotenterdata:'.mysql_error());}echo"Entereddatasuccessfully\n";mysql_close($conn);}else{?><formmethod="post"action="<?php$_PHP_SELF?>"><tablecellspacing="1"cellpadding="2"><tr><td>TutorialTitle</td><td><inputname="runoob_title"type="text"id="runoob_title"></td></tr><tr><td>TutorialAuthor</td><td><inputname="runoob_author"type="text"id="runoob_author"></td></tr><tr><td>SubmissionDate[yyyy-mm-dd]</td><td><inputname="submission_date"type="text"id="submission_date"></td></tr><tr><td></td><td></td></tr><tr><td></td><td><inputname="add"type="submit"id="add"value="AddTutorial"></td></tr></table></form><?php}?></body></html>在我们接收用户提交的数据时,为了数据的安全性我们需要使用get_magic_quotes_gpc()函数来判断特殊字符的转义是否已经开启。如果这个选项为off(未开启),返回0,那么我们就必须调用addslashes这个函数来为字符串增加转义。
义。
你也可以添加其他检查数据的方法,比如邮箱格式验证,电话号码验证,是否为整数验证等。
优化insert性能
mysql的insert语句语法
insertinto`table`(`field1`,`field2`)values('value1','value2');提高insert性能的方法
1.一条sql语句插入多条数据
INSERTINTO`insert_table`(`uid`,`content`,`type`)VALUES('userid_0','content_0',0);INSERTINTO`insert_table`(`uid`,`content`,`type`)VALUES('userid_1','content_1',1);可以写成
复制代码代码如下:
INSERTINTO`insert_table`(`uid`,`content`,`type`)VALUES('userid_0','content_0',0),('userid_1','content_1',1);