c语言sscanf函数的用法是什么
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代码:
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~