PHP操作MySQL(1)
1. 前置知识点回顾PHP工作原理: (1). PHP的代码传递给PHP包,?请求PHP进行解析并编译. (2).?服务器根据PHP代码的请求读取数据库. (3).?服务器与PHP包共同根据数据库中的数据和其他运行变量,?将PHP代码解析成普通的HTML代码. (4).?解析后的代码发送个浏览器,?浏览器对代码进行分析获取可视化内容. (5).?用户通过浏览器浏览网站的内容. ? 2. PHP操作数据库的基本步骤(按顺序)? ? (1).?建立连接: $connection = mysqli_connect(‘host‘,‘username‘,‘password‘,‘databases_name‘,port......); (2).?判断连接是否成功:?mysqli_connect_error()-----连接成功返回0,?失败返回1 (3).?选择数据库:?mysqli_select_db($connection,‘another_database_name‘) (4).?设置字符集: mysql_set_charset($connection,‘utf8‘); (5).?书写SQL语句: $sql = "select * from db_name"; $result = mysqli_query($connection,$sql);......... (6).?执行SQL语句: mysqli_query(); (7).?解析结果集: mysqli_fetch_array($result,resulttype::MYSQLI_ASSOC); ???其中: MYSQLI_ASSOC代表以关联数组编号,MYSQLI_NUM代表以索引数组编号 mysqli_fetch_assoc(),mysqli_fetch_all(); (8).?关闭连接: mysqli_close($connection); 例如: <?php //建立连接 $connection = mysqli_connect(‘localhost‘,‘root‘,‘test‘,3306); // var_dump($connection); //判断连接是否成功 if( !mysqli_connect_error() ){ echo ‘连接成功!‘.‘</br>‘; }else{ die(mysqli_connect_error()); } //(更换)选择数据库 mysqli_select_db($connection,‘mrsoft‘); //设置字符集 mysqli_set_charset($connection,‘utf8‘); //操作数据库 $sql = "select * from `books`"; $result = mysqli_query($connection,$sql); var_dump($result); $array = mysqli_fetch_array($result, MYSQLI_ASSOC); var_dump($array); //关闭连接 mysqli_close($connection); //var_dump($connection); ?> 说明:?如果在多个网页中都要进行频繁的数据库访问,?则可以建立与数据库服务器的持续连接来提高效率. ? 持续连接的方法:?mysqli_pconnect()代替mysqli_connect(),?系统自动返回已经建立好的持续连接的ID号. 3.?添加,?更新,?删除数据
<?php //连接数据库 $connect = mysqli_connect(‘localhost‘,3306); //测试连接是否成功 if( mysqli_connect_error() ){ die(‘连接失败,原因: ‘. mysqli_connect_error()); } //连接成功 //选择数据库 mysqli_select_db($connect,‘test‘); //设置字符集 mysqli_set_charset($connect,‘utf8‘); //书写SQL语句 $sql_insert =‘INSERT INTO user1(username,age,sex,addr,married,salary) VALUES("周星星",28,"男","香港",9999999)‘; $sql_update = ‘UPDATE user1 SET username="张三丰" WHERE id=5‘; $sql_delete = ‘DELETE FROM user1 WHERE id=4‘; //执行SQL语句 $result_insert = mysqli_query($connect,$sql_insert); $result_update = mysqli_query($connect,$sql_update); $result_delete = mysqli_query($connect,$sql_delete); //解析SQL语句执行结果 if($result_insert){ echo ‘执行成功!‘ . mysqli_affected_rows($connect) . ‘条数据,刚才插入的数据的ID是‘ . mysqli_insert_id($connect); }else{ echo ‘执行失败!‘; } if($result_update){ echo ‘执行成功!‘ .‘更新了‘ .mysqli_affected_rows($connect) . ‘条数据.‘; }else{ echo ‘执行失败!‘; } if($result_delete){ echo ‘执行成功! 成功删除了‘.mysqli_affected_rows($connect) . ‘条数据.‘; }else{ echo ‘执行失败!‘; } //关闭连接,释放资源. mysqli_close($connect); ?> ? 4.?简单的查询与结果解析<?php //连接数据库 $link = mysqli_connect(‘localhost‘,‘root‘); //测试连接是否成功 if( mysqli_connect_error()){ die( ‘连接失败! 原因: ‘. mysqli_connect_error()); } //连接成功 //选择数据库test mysqli_select_db($link,‘test‘); //设置字符集 mysqli_set_charset($link,‘utf8‘); //书写SQL语句 $sql1 = ‘SELECT * FROM user1‘; $sql2 = ‘SELECT * FROM user1 WHERE id<8‘; //执行SQL语句 $result = mysqli_query($link,$sql2); //解析结果 if($result){ // echo ‘执行成功! ‘; echo ‘<pre>‘; // $data = mysqli_fetch_array($result,MYSQLI_ASSOC); // var_dump($data); while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){ var_dump($row); } }else{ echo ‘执行失败! ‘; } ?> 结果: array(8) { ["id"]=> string(1) "5" ["username"]=> string(9) "张三丰" ["age"]=> string(2) "38" ["sex"]=> string(3) "男" ["addr"]=> string(6) "上海" ["married"]=> string(1) "0" ["salary"]=> string(8) "15000.00" ["userDesc"]=> string(16) "user description" } array(8) { ["id"]=> string(1) "6" ["username"]=> string(9) "张子怡" ["age"]=> string(2) "39" ["sex"]=> string(3) "女" ["addr"]=> string(6) "北京" ["married"]=> string(1) "1" ["salary"]=> string(8) "85000.00" ["userDesc"]=> string(16) "user description" } array(8) { ["id"]=> string(1) "7" ["username"]=> string(6) "汪峰" ["age"]=> string(2) "42" ["sex"]=> string(3) "男" ["addr"]=> string(6) "深圳" ["married"]=> string(1) "1" ["salary"]=> string(8) "95000.00" ["userDesc"]=> string(16) "user description" }
5.?复杂查询与结果解析<?php //连接数据库 $link = mysqli_connect(‘localhost‘,‘root‘); //测试连接是否成功 if( mysqli_connect_error() ){ die( ‘连接失败! 原因: ‘.mysqli_connect_error()); } //连接成功 //选择数据库 mysqli_select_db($link,‘utf8‘); //书写SQL语句 $sql = ‘SELECT * FROM user1 WHERE id<12 AND id>8‘; //执行SQL语句 $result = mysqli_query($link,$sql); //解析SQL语句执行结果 if($result) { echo ‘<pre>‘; echo ‘<table border="1px">‘; echo ‘<tr>‘; echo ‘<th>id</th>‘; echo ‘<th>username</th>‘; echo ‘<th>age</th>‘; echo ‘<th>sex</th>‘; echo ‘<th>addr</th>‘; echo ‘<th>married</th>‘; echo ‘<th>salary</th>‘; echo ‘<th>userdesc</th>‘; echo ‘</tr>‘; while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){ echo ‘<tr>‘; echo "<td width=‘100px‘>{$row[‘id‘]}</td>"; echo "<td width=‘100px‘>{$row[‘username‘]}</td>"; echo "<td width=‘100px‘>{$row[‘age‘]}</td>"; echo "<td width=‘100px‘>{$row[‘sex‘]}</td>"; echo "<td width=‘100px‘>{$row[‘addr‘]}</td>"; echo "<td width=‘100px‘>{$row[‘married‘]}</td>"; echo "<td width=‘100px‘>{$row[‘salary‘]}</td>"; echo "<td width=‘100px‘>{$row[‘userDesc‘]}</td>"; echo ‘</tr>‘; } echo ‘</table>‘; } //关闭连接 mysqli_close($link); ?> 结果: 6.?程序错误排查(1)可能的错误原因: SQL语句语法错误,?数据类型错误,?唯一索引列数据错误...... (2)程序错误排查: 判断SQL语句的执行结果,?查看数据影响条数,?获取SQL语句执行的错误信息[?调用mysqli_error($link),mysqli_errorno($link) ] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |