php与mysql 绑定变量和预定义处理
非select 语句(没有结果集的)
1.建立连接数据库
$mysqli=new mysqli("localhost","root","","sqldb");
2.判断
if(mysqli_connect_error()){
echo "连接数据库失败".mysqli_connect_error();
exit;
}
3.SQL语句拼装
$sql="insert into shops(name,price,description) values(?,?,?,?)";
$sql="update shops set name=?,price=?,num=?,description=?; where id=?";
4.插入SQL 语句
$stmt=$mysqli->prepare($sql);//比较方便
5.给每一个符号的?传值(绑定参数)
$stmt->bind_param("sdisi",$name,$price,$num,$description,$id);
6.传值
$name="zhangsan";
$price=22.22;
$num=10;
$description="very good";
$id=10;
7.执行
$stmt->execute();
影响行数:$stmt->offected_rows;
最后插入的ID:$stmt->insert_id;

$mysqli=@new mysqli("localhost","root","","sqldb");
if(mysqli_connect_error())
{
echo "连接数据库错误".$mysqli_connect_error();
}
/*拼装数据*/
$sql="insert into shop values (null,?,?,?)";
$sql="update shop set name=?,price=?,description=? where id=?";
/*插入数据*/
$stmt=$mysqli->prepare($sql);
/*绑定数据*/
$stmt->bind_param("sdsi", $name, $price, $description, $id);
/*赋值*/
$name="zhangsanasdfadfasdfasdf";
$price=2.3;
$description="very good";
$id=1;
/*执行*/
$stmt->execute();

select 语句(有结果集的)
1.连接数据库
$mysqli=new mysqli("localhost","root","","sqldb");
2.判断数据库
if(mysqli_connect_error()){
echo "Error:".mysqli_connect_error();
}
3.拼接数据库
$sql="select id,name,price,description where id=?";
4.插入数据库
$stmt=$myqli->prepare($sql);
5.绑定数据库
$stmt->bind_param(i,$id);
6.绑定结果集
$stmt->bind_result($id,$name,$price,$description);
7.赋值
$id=10;
8.执行
$stmt->execute();
9.取出结果集
$stmt->store_result();
10.while 查看结果
while($stmt->fetch()){
echo "$id---$name---$price--$description";
}
11.关闭结果集
$stmt->free_result();
12.关闭数据库
$stmt->close();

<?php $mysqli= @new MySQLi("localhost","root","","sqldb"); if(mysqli_connect_error())
{
echo "Error:".mysqli_connect_error();
}
/*拼装SQL*/
$sql="select id,name,price,description from shop where id<?";
/*插入*/
$stmt=$mysqli->prepare($sql);
var_dump($stmt);
/*绑定*/
$stmt->bind_param(i,$id);
/*绑定结果集*/
$stmt->bind_result($id,$name,$price,$description);
/*赋值*/
$id=10;
/*执行*/
$stmt->execute();
/*取出结果集*/
$stmt->store_result();
echo "<table border='1'>";
//字段信息、列信息
$result=$stmt->result_metadata();
echo "<tr>";
while($field=$result->fetch_field())
{
echo "<th>{$field->name}</th>";
}
echo "</tr>";
/*fetch()查看结果集*/
/*移动数据库指针*/
//$stmt->data_seek(2);
while($stmt->fetch()){
echo "<tr>";
echo "<td>$id</td><td>$name</td><td>$price</td><td>$description</td>";
echo "</tr>";
}
echo "</table>";
/*关闭结果集*/
$stmt->free_result();
/*关闭数据库d*/
$stmt->close();?>

php与mysql 绑定变量和预定义处理的更多相关文章
- Paip.最佳实践-- Buildin variale 内建变量 ,魔术变量,预定义变量,系统常量,系统变量 1
Paip.最佳实践-- Buildin variale 内建变量 ,魔术变量,预定义变量,系统常量,系统变量 1.1.1 C++内建变量(__LINE__).... 1.1.2 ...
- Linux Shell基础 位置参数变量、预定义变量
位置参数变量 在 Linux 的命令行中,当一条命令或脚本执行时,后面可以跟多个参数,我们使用位置参数变量来表示这些参数.其中,$0 代表命令行本身,$1 代表第 1 个参数,$2 代表第 2 个参数 ...
- linux中位置参数变量和预定义变量
位置参数变量 预定义变量
- make的自动变量和预定义变量
make的自动变量 $@ 规则目标的文件名.如果目标是档案文件的一个成员,"$@"就是档案文件的名称 $% 当目标是档案文件的一个成员时,"$%"是该成员的名称 ...
- 小鸟初学Shell编程(八)环境变量、预定义变量与位置变量
环境变量 环境变量:每个Shell打开都可以获得到的变量. 我们知道通过export的方式打开可以让子进程读取父进程的变量的值,那怎么样才能让每一个进程都能读取到变量的值呢? 在这呢,系统有一些默认的 ...
- Linux学习--第十天--bash脚本、用户自定义变量、环境变量、位置参数变量、预定义变量、标准输入输出、wc、history、dd、PS1
shell简介 分为两种c shell 和b shell b shell:sh.ksh.Bash.psh.zsh: (Bash和sh兼容,linux基本shell是Bash) c shell:csh. ...
- PHP_零基础学php_2变量、预定义变量、预定义常量、表达式、运算符、程序控制流程
1.变量 PHP中使用$后跟变量名表示一个变量,变量名区分大小写. 变量的数据类型 整数类型 浮点类型 字符串类型 布尔类型 数组类型 对象 <html> <head> < ...
- C#笔记(二)变量之预定义的引用类型
1.object类型 在C#中, object类型就是最终的父类型,所有内置类型和用户定义的类型都从它派生而 来. 这样, object类型就可以用于两个目的了: 可以使用object引用绑定任何子类 ...
- 『忘了再学』Shell基础 — 17、预定义变量
目录 1.预定义变量$? 2.预定义变量$$和$! 我们之前说过,Shell中的变量不是按照变量值的类型来进行分类的,而是按照Linux系统中定义的变量类别来分类的. 预定义变量就是,事先把变量的名称 ...
随机推荐
- Excel技巧—开始菜单之格式刷六大功能
转: Excel技巧-开始菜单之格式刷六大功能 点赞再看,养成习惯:千里之行,始于足下. 微信搜索[亦心Excel]关注这个不一样的自媒体人. 本文 GitHub https://github.com ...
- js mysql 时间日期比较
js代码 1 var date1 = '2017/2/13'; 2 //var date1 = new Date().toLocaleDateString(); 3 var date2 = '2017 ...
- 漫漫Java路1—基础知识—初涉java
前言 主学信息安全,在编程的路上还是一个孩子,还在一步一步探索,有些东西可能是站在自己的位置思考的,很可能会出现一些啼笑皆非的错误,如果有误,还希望各位斧正. Java安装 jdk的安装 甲骨文官网选 ...
- python面试题,print写在for循环内和外的区别
1.统计列表中正数和负数的数量a = [1,3,5,7,0,-1,-9,-4,-5,8]b = []c = []for i in a : if i>0: b.append(i) elif i&l ...
- .NET 6 Preview 2 发布
前言 在 2021 年 3 月 11 日, .NET 6 Preview 2 发布,这次的改进主要涉及到 MAUI.新的基础库和运行时.JIT 改进. .NET 6 正式版将会在 2021 年 11 ...
- C# 通过ServiceStack 操作Redis——Set类型的使用及示例
ServiceStack 程序集里面没有方法注解,我在这里将注解添加上去,有不当之处,欢迎指正 Console.WriteLine("---Set类型---"); //添加 set ...
- Go语言学习笔记——在本地建立一个官网查看
命令行内运行 godoc -http=:8080 运行完成后打开浏览器输入网址:http://localhost:8080能看到一个和官网一模一样的网站,然后查看帮助文档
- BZOJ_2243 [SDOI2011]染色 【树链剖分+线段树】
一 题目 [SDOI2011]染色 二 分析 感觉树链剖分的这些题真的蛮考验码力的,自己的码力还是不够啊!o(╯□╰)o 还是比较常规的树链剖分,但是一定记得这里的线段树在查询的时候一定要考虑链于链相 ...
- 混合编程:如何用python11调用C++
摘要:在实际开发过程中,免不了涉及到混合编程,比如,对于python这种脚本语言,性能还是有限的,在一些对性能要求高的情景下面,还是需要使用c/c++来完成. 那怎样做呢?我们能使用pybind11作 ...
- 攻防世界 reverse 进阶 10 Reverse Box
攻防世界中此题信息未给全,题目来源为[TWCTF-2016:Reverse] Reverse Box 网上有很多wp是使用gdb脚本,这里找到一个本地还原关键算法,然后再爆破的 https://www ...