用 PHP 作为 Shell 脚本语言:fopen("/dev/stdin", "r")

| November 13, 2008 11:18 | root | Via 本站原创
#!/usr/local/bin/php -q
<?php

function read() {
    $fp=fopen("/dev/stdin", "r");
    $input=fgets($fp, 255);
    fclose($fp);

    return $input;
}

print("What is your first name? ");
$first_name = read();

print("What is your last name? ");
$last_name = read();

print("\nHello, $first_name $last_name!  Nice to meet you!\n");

?>

http://www.phpe.net/articl...
http://www.thismail.org/bb...
原始来源老外的网站:http://www.phpbuilder.com/...
这里首先需要解释的是,我想应该就是连接通道的含义了。那什么是连接通道呢?
所谓连接通道,就是客户端和服务器端保持连接的一个通道,它是逻辑上的一个概念。客户端通过连接通道发送sql语句到服务器端,服务端执行,将结果再通过连接通道返回至客户端。the connection is the pass when you connect to the server.

这个过程中,有几个临界点(逻辑上概念),是我们需要注意的,mysql也就在这几个临界点上做了文章。

1、当语句离开客户端的时候:
从客户端出来的,包括sql语句本身(这里里面就包含字符串和关键字等了),以及character_set_client系统变量。为什么要包含这个变量呢?这个变量的作用说明2点,也是它的作用:一是表示该语句中的字符集是使用character_set_client指定的字符集编码的,二是通过此系统变量来告诉服务器所发送来的语句中的字符集编码。
2、当服务器端接受到客户端的语句的时候:
mysql会使用character_set_connection/collation_connection指定的字符集以及校验规则,将客户端的字符串,做一个从character_set_client到character_set_connection的转换。
3、当服务器处理好结果以后,在把结果传给客户端前:
mysql会先将结果转换成character_set_results指定的字符集,然后传回给客户端。


当字符串在mysql服务器的时候,最终以什么格式存储到mysql数据库中,这个是受到具体的数据表级别、列级别字符集设置的控制了。

CentOS下用yum配置php+mysql+apache

| November 12, 2008 15:48 | root | Via 本站原创
1. 安装Apahce, PHP, Mysql, 以及php连接mysql库组件。
  yum -y install httpd php mysql mysql-server php-mysql
  
  2. 配置开机启动服务
  /sbin/chkconfig httpd on [设置apache服务器httpd服务开机启动]
  /sbin/chkconfig --add mysqld [在服务清单中添加mysql服务]
  /sbin/chkconfig mysqld on [设置mysql服务开机启动]
  
  /sbin/service httpd start [启动httpd服务,与开机启动无关]
  /sbin/service mysqld start [启动mysql服务,与开机无关]
  
  3.设置mysql数据库root帐号密码。
  mysqladmin -u root password 'newpassword' [引号内填密码]
  
  4. 让mysql数据库更安全
  mysql -u root -p [此时会要求你输入刚刚设置的密码,输入后回车即可]
  
  mysql> DROP DATABASE test; [删除test数据库]
  mysql> DELETE FROM mysql.user WHERE user = ''; [删除匿名帐户]
  mysql> FLUSH PRIVILEGES; [重载权限]
  
  5. 按照以上的安装方式, 配置出来的默认站点目录为/var/www/html/新建一个php脚本:
   phpinfo();
  ?>
  
  6. 新建一个数据库,添加一个数据库用户,设置用户权限。写个php脚本测试一下数据库连接吧。
  mysql> CREATE DATABASE my_db;
  mysql> GRANT ALL PRIVILEGES ON my_db.* TO 'user'@'localhost' IDENTIFIED BY 'password';
  
  
  
  //安装apache扩展
  yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql
  //安装php的扩展
  yum install php-gd
  yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc
  //安装mysql扩展
  yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql

[精华]MySQL 大企业级应用可行性分析

| November 12, 2008 14:43 | root | Via 本站原创

mysql命令行客户端结果分页浏览

| November 12, 2008 14:24 | root | Via 本站原创
http://syre.blogbus.com/logs/23587704.html



一个mysql命令行客户端的一个小技巧

在mysql命令行客户端操作的时候,有时候一个语句的结果一长~~~~串,然后就没得看了,还会把之前的东西全冲掉。

mysql的命令行客户端有这么一个功能,可以选择查询结果的page方式。比如用\P less,就会用less来显示查询结果,就可以上下滚动翻页了。同样的,也可以用more或者其他什么东西,甚至可以用自己的脚本来做一些处理。如果想换回标准的,直接\P就可以了。\P是page的简写,所以喜欢更清晰的也可以用page。

另一个技巧知道的人多一些

在语句最后用\G代替;就会让查询结果垂直输出,对于有很多列的结果比如explain,会清晰一些。

分页: 4/259 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]