-
<?php //1.验证mysqli是否已经安装 phpinfo();//查看php及其所有扩展库的版本信息 echo "<hr/>"; //2.检查扩展已经加载 var_dump(extension_loaded("mysqli")); var_dump(extension_loaded("curl")); echo "<hr/>"; //3.检查函数是否存在 var_dump(function_exists("mysqli_connect")); echo "<hr/>"; //4.得到当前已经开启的扩展 print_r( get_loaded_extensions()); echo "<hr/>"; ?>查看全部
-
$mysqli->multi_query()多条SQL语句执行方法(下篇) 3.$mysqli->multi_query()多条SQL语句执行方法说明: 1).multi_query()逐条执行SQL语句,当其中有一条语句执行失败,后面的语句不会继续执行; 2).如果第一条语句执行成功,无论后面有几条语句执行失败,返回值都为true; 3).当第一条语句执行失败,后面的语句不会执行(与1说明情况相同),返回值为false; 4).以上只对增、删、改来说; 5).如果是查询操作,可以对执行多个查询语句,并将所有结果集存储在mysqli对象中,返回true或者false(返回true或者false的情况,参看前面的1-3); 6).使用use_result()或story_result()获得multi_query()查询后的一个结果集(结果集指针当前指向的结果集,从第一条开始); 7).more_result()检测是否还有更多的结果集,有返回真; 8).next_result()将结果集指针移动指向下一条结果集,移动成功返回真; 使用multi_query()返回值只有返回true或者false(个人已经做过实验),而所有结果集都是由$mysqli这个对象自行存储 if($mysqli->multi_query($sql)){ do{ if($mysqli_result=$mysqli->store_result()){ //赋值语句的返回的是被赋的值 $rows[]=$mysqli_result->fetch_all(MYSQLI_ASSOC); } //more_result()检测是否还有更多的结果集,next_result()将结果集指针移动指向下一条结果集 }while($mysqli->more_results() && $mysqli->next_result()); }else{ echo $mysqli->error; } print_r($rows);查看全部
-
$mysqli->multi_query()多条SQL语句执行方法(上篇) 1.多条SQL语句执行方法中,多条SQL语句用";"隔开($mysqli->query()和mysql_query()中SQL语句不能用”;”结束) $sql="INSERT user(username,password,age) VALUES('imooc3','imooc3',32);"; $sql.="UPDATE user SET age=5 WHERE id=28;"; $sql.="DELETE FROM user WHERE id=25;"; $res=$mysqli->multi_query($sql); 2.几乎所有的高级语言赋值语句都是有值的(包括PHP,C,C++,JAVA,javascript),返回的是被赋的值;比如: echo $a=$b=10;这个表达式的运行过程是 $b=10 返回10; $a=10(返回的值) 返回10; echo 10(返回的值)echo没有返回值.查看全部
-
1.要修改的记录获取: $id=$_GET['id']; $sql="SELECT id,username,password,age FROM user WHERE id=".$id; $mysqli_result=$mysqli->query($sql); //此处与老师的不同,虽然结果相同,但按照老师的说法应该是判断mysqli_result->num_rows > 0才正确 if($mysqli_result && $mysqli_result->num_rows > 0){ $row=$mysqli_result->fetch_assoc(); } //修改内容填写完成后提交时,要将相应id提交 <form action="doAction.php?act=editUser&id=<?php echo $id;?>" method='post'> 2.修改数据库: $sql="UPDATE user SET username='{$username}',password='{$password}',age='{$age}' WHERE id=".$id; $res=$mysqli->query($sql); if($res){ $mes='更新成功'; }else{ $mes='更新失败'; } $url='userList_6.php'; //成功与否都返回用户列表界面 echo "<script type='text/javascript'> alert('{$mes}'); location.href='{$url}'; </script>"; exit; //退出整个程序查看全部
-
删除记录: $sql="DELETE FROM user WHERE id=".$id; //($id为数据表中的自增长字段作为用户的唯一标识符) $res=$mysqli->query($sql); if($res){ $mes='删除成功'; }else{ $mes='删除失败'; } $url='userList_6.php'; echo "<script type='text/javascript'> alert('{$mes}'); location.href='{$url}'; </script>"; exit; break;查看全部
-
$mysqli->set_charset('utf8'); //设置客户端字符集 $username=$_POST['username']; $username=$mysqli->escape_string($username); //mysqli->escape_string()转义字符方法:对字符串中可能让数据库引起歧义的字符进行转义(如””,’’,//等) $password=md5($_POST['password']); //使用md5()对密码进行加密 $age=$_POST['age']; $act=$_GET['act']; //根据不同的act值让同一php文件完成多种功能 switch($act){ case 'addUser': //echo '添加用户的操作'; //在php中 {变量}为了把变量和后边的字符串区分开(如:{$a}b意思是变量$a后边跟字符b) $sql="INSERT user(username,password,age) VALUES('{$username}','{$password}','{$age}')"; $res=$mysqli->query($sql); if($res){ $insert_id=$mysqli->insert_id; echo "<script type='text/javascript'> alert('添加成功,网站的第{$insert_id}位用户'); location.href='userList_6.php'; //返回用户列表界面 </script>"; exit; }else{ echo "<script type='text/javascript'> alert('添加失败,重新添加'); location.href='addUser.php'; //返回用户添加页面 </script>"; exit; } break; }查看全部
-
1.PHP中那些语法有替代语法: 流程控制(包括if,while,forforeach,switch)这几个语句php中有替代语法。这些语法能发挥的地方是在PHP和HTML混合页面的代码里面。 1).使HTML和PHP混合页面代码更加干净整齐 2).流程控制逻辑更清晰,代码更容易阅读 替代语法的基本形式: 左花括号({)换成冒号(:),把右花括号(})分别换成 endif;,endwhile;,endfor;,endforeach; 以及 endswitch; 2.通过php循环语句循环打印显示html代码: <!-- $i自增作为编号,网页显示编号与数据库中的编号不一定相等 --> <?php $i=1; foreach($rows as $row):?> <tr> <td><?php echo $i;?></td> <td><?php echo $row['username'];?></td> <td><?php echo $row['age'];?></td> <td><a href="editUser.php?id=<?php echo $row['id'];?>">更新</a>|<a href="doAction.php?act=delUser&id=<?php echo $row['id'];?>">删除</a></td> </tr> <?php $i++;endforeach;?>查看全部
-
mysqli中的SELECT结果返回值相关属相+方法(下篇) //取得结果集中的一条记录,作为对象返回 $row=$mysqli_result->fetch_object(); //移动结果集内部指针(结果集内通过这个指针来确定返回那一条记录) $mysqli_result->data_seek(0);//指针从0开始计数 while($row=$mysqli_result->fetch_assoc()){ $rows[]=$row; } //释放结果集,回收内存地址 $mysqli_result->free();查看全部
-
mysqli中的SELECT结果返回值相关属相+方法(上篇) $sql="SELECT id,username,age FROM user"; $mysqli_result=$mysqli->query($sql); //此时$mysqli->query()返回的是一个结果集对象,用变量$mysqli_result接收 if($mysqli_result && $mysqli_result->num_rows>0){ //echo $mysqli_result->num_rows; //显示记录数 //获取结果集中所有记录,默认返回的是二维的数组(索引+索引的形式) //$rows=$mysqli_result->fetch_all(); //不同的参数返回不同形式的数组(都是获取结果集中所有记录) $rows=$mysqli_result->fetch_all(MYSQLI_NUM); //返回索引数组 $rows=$mysqli_result->fetch_all(MYSQLI_ASSOC);//返回关联数组 $rows=$mysqli_result->fetch_all(MYSQLI_BOTH); //返回索引数组与关联数组 //每次只能去一条记录 $row=$mysqli_result->fetch_row();//取得结果集中一条记录作为索引数组返回(=mysql_fetch_row();) $row=$mysqli_result->fetch_assoc();//取得结果集中的一条记录作为关联数组返回(=mysql_fetch_assoc();) //取得结果集中的一条记录,不同的参数返回不同形式的数组(=mysql_fetch_array();) $row=$mysqli_result->fetch_array();//默认以关联数组和索引数组两种方式返回 $row=$mysqli_result->fetch_array(MYSQLI_ASSOC); //MYSQLI_ASSOC返回关联数组, MYSQLI_NUM返回索引数组, MYSQLI_BOTH返回索引数组与关联数组查看全部
-
1.$mysqli->insert_id与mysql_insert_id(): 当表中没有字段设置为AUTO_INCREMENT(自增长),则$mysqli->insert_id与mysql_insert_id()返回的值为0(个人分析见解:说明一张数据表如果没有设置AUTO_INCREMENT字段,AUTO_INCREMENT的值=0,设置了AUTO_INCREMENT字段则AUTO_INCREMENT=1,如果用吧AUTO_INCREMENT当做记录指针,AUTO_INCREMENT始终指向的都是将要填写的下一条记录) 2.affected_rows值为3种: 1).受影响的记录条数 2).-1,代表SQL语句有问题 3).0,代表没有受影响记录的条数查看全部
-
//添加记录 //执行单条SQL语句,只能执行一条SQL语句; // $sql="INSERT user(username,password) VALUES('king','king');"; // $sql.="DROP TABLE user;”; //直接添加两条SQL语句并用mysql->query()插入系统将报错 $sql="INSERT user(username,password) VALUES('queen1','queen1'),('queen2','queen2'),('queen3','queen3'),('queen4','queen4')"; $res=$mysqli->query($sql); if($res){ //得到上一插入操作产生的AUTO_INCREMENT的值 //$mysqli->insert_id与mysql_insert_id()功能相同,都是获取插入操作执行前的AUTO_INCREMENT值 echo '恭喜您注册成功,您是网站第'.$mysqli->insert_id.'位用户<br/>'; //得到上一步操作产生的受影响记录条数 //$mysqli->affected_rows与mysql_affected_row()功能相同,都是获取被影响的行数值 echo '有'.$mysqli->affected_rows.'记录被影响'; }else{ //得到上一步操作产生的错误号和错误信息 echo 'ERROR '.$mysqli->errno.':'.$mysqli->error; }查看全部
-
mysqli类库操作数据库(下篇) 4.查看数据库对象的相关信息(可以通过属性查看,也可以通过方法查看,有些属性不一定有对应的方法可以获取到) echo '客户端的信息:'.$mysqli->client_info.’<br/>’; 或者echo $mysqli->get_client_info().’<br/>’; echo“客户端的版本:”$mysqli->cilent_version.’<br/>’; 服务器信息 $mysqli->server_info; $mysqli->get_server_info(); 5.设置字符集: $mysqli->set_charset('utf8'); 6.执行sql查询 $sql=<<<EOF //定界符 CREATE TABLE IF NOT EXISTS mysqli( id TINYINT UNSIGNED AUTO_INCREMENT KEY, username VARCHAR(20) NOT NULL); EOF; $res = $mysqli->query($sql); /* 1).SELECT/DESC/DESCRIBE/SHOW/EXPLAIN执行成功返回mysqli_result类型的对象(返回的是一个临时对象,期没有对象名,必须使用一个变量进行接收,这里的mysqli_result并不是返回对象的名称,不是变量),执行失败返回false 2).返回值可能是布尔值或者是mysqli_result对象(与mysql_query()类似,不同的是mysql_query()返回的是资源标识符[内存地址指针],对应的$mysqli->query()返回的是对象)。 */ 7.关闭连接 $mysqli->close();查看全部
-
mysqli类库操作数据库(上篇) 通过mysqli类库操作数据库步骤: 1).建立到mysql的链接 2).打开指定的数据库 3).设置默认的客户端的字符集 4).执行的sql查询 5).释放结果集 6).关闭链接 1.建立到mydql数据的链接 $mysqli = @new mysqli('localhost','root','root','test’);//通过构造函数连接服务器并打开数据库,第四个参数为数据库名(此参数可以省略,之后再通过对象方法打开相应数据库) 或者$mysqli = new mysqli() $mysqli->connect('127.0.0.1','root','root’,’test’);//通过对象方法连接服务器打开数据库,第四个参数为数据库名(此参数可以省略,之后再通过对象方法打开相应数据库) 2.打开指定的数据库 $musqli->select_db('test'); 3.验证是否打开数据库成功 //$mysqli->connect_errno 错误编号 //$mysqli->connect_error 错误信息 if($mysqli->connect_errno){ die('connect error:'$mysqli->connect_error); }查看全部
-
window下按照WAMP安装MySQLi扩展: 1.在php文件夹中找到php.ini 2.搜索extension=php_mysqli.dll并去掉前面的分号(去注释) 3.搜索extension_dir;将其指向php安装目录下的ext目录 4.重启Apache查看全部
-
<?php //1.验证mysqli是否已经安装 phpinfo();//查看php及其所有扩展库的版本信息 echo "<hr/>"; //2.检查扩展已经加载 var_dump(extension_loaded("mysqli")); var_dump(extension_loaded("curl")); echo "<hr/>"; //3.检查函数是否存在 var_dump(function_exists("mysqli_connect")); echo "<hr/>"; //4.得到当前已经开启的扩展 print_r( get_loaded_extensions()); echo "<hr/>"; ?>查看全部
举报
0/150
提交
取消