PHP学习之MySql函数·微型博客

网友投稿 620 2022-09-16

PHP学习之MySql函数·微型博客

PHP与MySql是通过MySql组件通信的。

到PHP.ini文件中开启:;extension = php_mysql.dll  (去除前面分号即可)

mysql_query(SQL语句或命令) 括号内的SQL语句最好用括号引起来

PHP_MySql常用函数:

mysql_connect(数据库地址,用户名,密码)

mysql_select_db(数据库名)

mysql_set_chartset(‘编码’) //  数据库,视图,代码编码应该统一

mysql_query(“set names 'gbk'”)

mysql_query(SQL语句或命令)

mysql_fetch_array(资源数据)  //返回下标与键名数组

mysql_fetch_row(资源数据)  //返回下标数组

mysql_fetch_object(资源数据) //返回对象形式调用

mysql_num_rows(数据资源)

mysql_close(数据资源)   //关闭数据库

微型博客系统的创建:

文件结构:

想要让id自动随记录的插入增加值,建表时这样设置:

news表结构:

下面是相关代码:

connect.php

add.php页面及代码:

标题
内容

index.php代码:

添加内容


query($sql); while($row=$sr->fetch()){?>

标题: | 编辑| 删除|

  • ...


    view.php 页面及代码:

    edit.php页面及代码:

    和add页面几乎一样,不过作用不同。它是更新操作。

    更新后:

    query($sql); $row = $res->fetch(); } if(!empty($_POST['sub'])){ $title=$_POST['title']; $con=$_POST['con']; $hid=$_POST['hid']; $sql="update `news` set `title`='$title', `contents`='$con' where `id`='$hid' "; if(!mysqli_query($link,$sql)){ die("mysql query error:".mysql_error()); } echo ";"; // javascript } ?> 标题
    内容

    del.php:

    query($sql) or die(mysql_error()); echo("删除成功"); } ?>

    幕后:

    遇到的错误:

    Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future

    mysql_connect()函数将来会被废弃:

    推荐使用mysqli系列函数或者pdo系列函数。

    我使用过mysqli_query,但是却出现如下错误,怎么也改不过来。

    奇怪的错误:

    $sql = "SELECT * FROM `news` ORDER BY `id` ASC ";

    $result=mysqli_query($link,$sql,MYSQLI_STORE_RESULT); //返回查询结果

    print_r($result);

    mysqli_result Object ( [current_field] => 0 [field_count] => 4 [lengths] => [num_rows] => 2 [type] => 0 )

    ( ! ) Warning: mysql_fetch_array() expects parameter 1 to be resource, object given in D:\wamp\blog\index.php on line 14

    Call Stack

    #

    Time

    Memory

    Function

    Location

    1

    0.0009

    242800

    {main}( )

    ..\index.php:0

    2

    0.0033

    254616

    ​mysql_fetch_array​​ ( )

    ..\index.php:14

    换成:

    var_dump($result);

    object(mysqli_result)[2] public 'current_field' =>nullpublic 'field_count' =>nullpublic 'lengths' =>nullpublic 'num_rows' =>nullpublic 'type' =>null

    ( ! ) Warning: mysql_fetch_array() expects parameter 1 to be resource, object given in D:\wamp\blog\index.php on line 13

    Call Stack

    #

    Time

    Memory

    Function

    Location

    1

    0.0008

    241712

    {main}( )

    ..\index.php:0

    2

    0.0051

    254152

    ​mysql_fetch_array​​ ( )

    ..\index.php:13

    版本是php 5.5.12。

    于是,我把PHP.ini中extension=php_pdo_* 都选上(比如extension=php_pdo_mysql.dll),即把前面的分号去掉。

    接着在代码中使用pdo: $pdo = new PDO("mysql:host=localhost; dbname=member", "root","");

    其相关方法:

    PDO::query()    用于有记录结果返回的操作,特别是SELECT操作

    PDO::exec()    针对没有结果集合返回的操作,如INSERT、UPDATE等操作

    PDO::lastInsertId()  返回上次插入操作,主键列类型是自增的最后的自增ID

    PDOStatement::fetch() 是用来获取一条记录

    PDOStatement::fetchAll() 是获取所有记录集

    乱码问题: 在connect文件中加入这样的语句:

    mysqli_query($link,"set names 'gbk'");

    可以输入中文:

    但在目录中显示却是???:

    标题:dsgf |​​编辑| ​​​​删除​​|

    2016-01-27dsgsdg

    标题:?? |​​编辑| ​​​​删除​​|

    2016-01-27??????

    啊,好多的问题。这样一个小实验暴露了自己基础不扎实。

    编辑器 notepad++ 格式——utf-8编码

    echo前面加上:

    header("Content-type: text/html; charset=gb2312");

    三码合一:

    网页保存的编码类型、网页的charset=utf-8、和执行的set names utf8语句的编码方式应当一致

    代码首部:

    在phpmyadmin中修改那三个会话值。我全改成utf8(我在配置文件my.ini下居然找不到charater_set)

    之后发现乱码问题依然存在。啊,烦死了,我先拿英文练吧。

    另一个常见错误: Notice: Undefined variable: row in D:\wamp\blog\view.php on line 15

    php对于大小写,单双引号,' 和 ` 单引号是很敏感的。对于查不到的结果集(空集),报错多见上面那些。

    字符问题,我始终没有很好的解决。。。

    还有插入问题:

    1.

    No pays no gains.I success finally. I am so excite

    2.

    No pays no gains.I success finally. I'm so excite

    1能插入,2却不能插入。就因为多了个单引号。

    结语:通过这个微型博客的构建,能体会php混编的强大。同时它对大小写,字符编码,语法问题非常敏感。(中文字符问题,一定要解决。。。) MySql+php+HTML 能实现绝大部分的功能。

    版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

    上一篇:那些可以整除的数字
    下一篇:hdu 1250 Hat's Fibonacci(高精度加法)
    相关文章

     发表评论

    暂时没有评论,来抢沙发吧~