数据库添加数据II及SQL语句错误
前些时候,写的代码(数据库添加数据I),往数据库添加数据都是很基本的一条一条地添加。但是平常用于测试时,总不可能一条一条地添加测试数据吧,然后我就尝试着一次性添加几百上千条,但是再次操作的时候,就出问题了。因为平常看书的时候,都只是一瞥而过,而且书上写的基本都是函数原型,函数原型相当‘简单’!但是用的时候就容易出错了,所以特意写一篇如何往数据库添加数据。
首先在test数据库中建一个users表,users(UserID,UserName,UserStatus),下划线表示主键,然后开始进行操作,代码见下:
首先是最常用的“一条一条地添加”:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <form action='insert.php' method='post'> <p>编号:<input type='text' name='UserID'></p> <p>姓名:<input type='text' name='UserName'></p> <p>状态:<input type='text' name='UserStatus'></p> <p><input type='submit' name='submit' value='保存'><input type='reset' name='reset' value='重置'></p> </form> </body> </html>
insert.php代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>insert</title>
</head>
<body>
<?php
mysql_connect('localhost','root','root') or die(mysql_error());
mysql_select_db('test') or die(mysql_error());
mysql_query('set names utf8');
if(isset($_POST['submit'])){
$UserID=$_POST['UserID'];
$UserName=$_POST['UserName'];
$UserStatus=$_POST['UserStatus'];
//错误的
//$sql="insert into users set UserID=$UserID,UserName=$UserName,UserStatus=$UserStatus";
//正确
//$sql="insert into users (UserID,UserName,UserStatus) values($UserID,'$UserName',$UserStatus)";
//正确
//$sql="insert into users set UserID=$UserID,UserName='$UserName',UserStatus=$UserStatus";
//正确
$sql="insert into users set UserID='$UserID',UserName='$UserName',UserStatus=$UserStatus";
$result=mysql_query($sql);
if($result){
echo "<script>alert('添加成功!');</script>";
} else{
echo "<script>alert('添加失败!');</script>";
}
} ?> </body> </html>
注意在写SQL语句的时候,一定要注意单引号和双引号的使用:对于字符串,必须用引号包含;数字可以用,也可以不用。最重要的一点便是,双引号与单引号同时嵌套使用的时候,一定要注意不要弄混,必须遵从“双引号包含单引号”或者“单引号包含双引号”,绝对不能下面这三个例子(全是错误的):
$sql="insert into users set UserID=$UserID,UserName="$UserName",UserStatus=$UserStatus"; $sql='insert into users set UserID=$UserID,UserName='$UserName',UserStatus=$UserStatus'; $sql="insert into users set UserID=$UserID,UserName='$UserName",UserStatus=$UserStatus";
添加多个,代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>insert</title>
</head>
<body>
<?php
$conn=mysql_connect("localhost","root","root")or die("数据库连接失败");
$select_db=mysql_select_db("test")or die("选择数据库失败");
mysql_query("set names utf8");
$sql="insert into page (ID,NAME) values ";
$s='';
for($i=1;$i<=200;$i++){
if($i!=200){
$s.="('$i','name$i'),";
} else {
$s.="('$i','name$i')";
}
}
$sql=$sql.$s;
$result=mysql_query($sql);
if($result){
echo "YES";
} else {
echo "添加失败"."<br>".mysql_error();
}
?>
</body>
</html>
数据库添加数据II及SQL语句错误的更多相关文章
- 1.4 数据库和常用SQL语句(正文)——MySQL数据库命令和SQL语句
前面我们已经讲述了,登录时,我们使用mysql –u root –p命令进行,此时如果设置了密码,则需要输入密码. 输入密码后即进入MySQL的操作界面,此时,命令行窗体左侧显示"mysql ...
- 项目总结04:SQL批量导入数据:将具有多表关联的Excel数据,通过sql语句脚本的形式,导入到数据库
将具有多表关联的Excel数据,通过sql语句脚本的形式,导入到数据库 写在前面:本文用的语言是java:数据库是MySql: 需求:在实际项目中,经常会被客户要求,做批量导入数据:一般的简单的单表数 ...
- (转载)异构数据库之间完全可以用SQL语句导数据
<来源网址:http://www.delphifans.com/infoview/Article_398.html>异构数据库之间完全可以用SQL语句导数据 告诉你一个最快的方法,用SQL ...
- 使用C#类向数据库添加数据的例子源码
在上一篇中,增加了sql server数据库操作类SqlOperator,用于操作sql server数据库.还有一个SqlStringHelper类,用于处理sql语句的单引号.那么这两个类怎么使用 ...
- 使用excel中的数据快速生成sql语句
在小公司的话,总是会有要开发去导入历史数据(数据从旧系统迁移到新系统上)的时候.这个时候,现场实施或客户会给你一份EXCEL文档,里面包含了一些别的系统上的历史数据,然后就让你导入到现在的系统上面去. ...
- 如何在MyEclipse中通过hibernate使用jtds驱动连接数据库,并向数据库添加数据的方法
最近学习了下如何在MyEclipse中通过hibernate使用jtds驱动连接数据库,并向数据库添加数据的方法,虽然MyEclipse中自带了连接数据库的方法,我也尝试了下其他方法,如有不当之处请指 ...
- Mysql下在某一列后即表的某一位置添加新列的sql语句
Mysql简介 MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司.MySQL被广泛地应用在Internet上的中小型网站中.由于其体积小.速度快.总体拥有成本低,尤 ...
- Oracle数据库查找持有锁的SQL语句,而不是请求锁的SQL语句(原创)
Oracle数据库查找持有锁的SQL语句,而不是请求锁的SQL语句 查找活动的事务以及活动事务关联的会话信息 select s.sid 会话ID, s.serial# 会话序列号, s.usernam ...
- 学习Angularjs向数据库添加数据
今天学习angularjs向数据库添加数据. 学习此篇,得从以往几篇开始,因为那还有创建数据表等演示. 现在来创建一个添加的存储过程: SET ANSI_NULLS ON GO SET QUOTED_ ...
随机推荐
- [saiku] 源码整合[maven整合]
saiku源码的整合分为[普通web项目整合]和[maven整合]两种 本节主要是讲解如何整合为maven项目 转载自:http://blog.csdn.net/gsying1474/article/ ...
- Java 集合系列 17 TreeSet
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- 循环语句for
循环语句for 格式: for(int i=1/*初始条件*/;i<=100/*循环条件*/;i++/*状态改变*/) { //循环体,执行代码:(break:跳出循环体) } 给出初始条件,先 ...
- 超棒的响应式设计测试书签和工具(bookmarks)(转)
一.测试书签(bookmarks) Viewport Resizer 这个书签号称拥有158个国家3万多活跃的用户,主要特性: 完全自定制 方便的添加自定义尺寸 手动的横竖屏切换 自动的横竖屏切换 ( ...
- VoltDB介绍——本质:数据保存在内存,充分利用CPU,单线程去锁,底层数据结构未知
转自:http://blog.csdn.net/ransom0512/article/details/50440316 简介 VoltDB数据库是一个分布式,可扩展,shared-nothing的内存 ...
- node 事件循环
什么是事件循环 Node只运行在一个单一线程上,至少从Node.js开发者的角度是这样的.在底层, Node是通过libuv来实现多线程的. Libuv库负责Node API的执行.它将不同的任务分配 ...
- js基础之弹性运动(四)
一.滑动菜单.图片 var iSpeed=0;var left=0;function startMove(obj,iTarg){ clearInterval(obj.timer);//记得先关定时器 ...
- Javascript——Math对象
Math 对象是一个固有的对象,无需创建它,直接把 Math 作为对象使用就可以调用其所有属性和方法.这是它与Date,String对象的区别 Math 对象属性 Math 对象方法
- Servlet下
HTTP简介 HTTP是 hypertext transfer protocol(超文本传输协议)的简写,它是 TCP/IP 协议集中的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的 ...
- jquery easyui DataGrid 动态的改变列显示的顺序
$.extend($.fn.datagrid.methods,{ columnMoving: function(jq){ return jq.each(function(){ var target = ...