⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1831.html

📁 著名的linux英雄站点的文档打包
💻 HTML
📖 第 1 页 / 共 3 页
字号:
    库语言. mysql是客户/服务端机制,即包括一个后端的服务器和许多不同的客户程序和库。<br>
    mysql数据库是众多的关系型数据库产品中的一个,相比较其它系统而言,mysql数据库<br>
    可以称得上是目前运行速度最快的SQL语言数据库。 除了具有许多其它数据库所不具备<br>
    的功能和选择之外,mysql数据库是一种完全免费的产品,用户可以直接从网上下载数<br>
    据库,用于个人或商业用途,而不必支付任何费用。<br>
    <br>
    mysql数据库具有以下主要特点:<br>
    <br>
    a. 同时访问数据库的用户数量不受限制;<br>
    b. 可以保存超过50,000,000条记录;<br>
    c. 是目前市场上现有产品中运行速度最快的数据库系统;<br>
    d. 用户权限设置简单、有效。<br>
    <br>
    5. 哪里可以下载mysql?<br>
    答: http://www.mysql.com<br>
    <br>
    6. 如何知道我现在正用着的mysql的版本?<br>
    答: 登录mysql以后,用s命令可以看到许多关于mysql的信息.<br>
    <br>
    7. 如何加入DBI邮件列表?<br>
    答: 要获得更多的信息和更新消息,你可以通过访问网址www.isc.org/dbi-lists.html<br>
    来加入DBI邮件列表(或者发一封电子邮件到dbi-users-request@isc.org).<br>
    <br>
    8. 如何安装mysql<br>
    答:去http://www.mysql.com/download_win.html,下载mysql-Win32发行版, 将zip文<br>
    件解压到一个临时目录并且运行安装程序setup.exe,缺省的典型安装, 所有的mysql文<br>
    件将会安装到c:mysql目录下。  <br>
    <br>
    启动mysql的方法是运行c:mysqlbinmysqld-shareware.exe,你可以看到一个dos窗口, <br>
    并在几秒钟后关闭。如果没有显示错误信息,mysql就已经运行了。<br>
    <br>
    9. 如何安装DBI模块?<br>
    答:安装dbi之前,请先安装activeperl(http://www.activestate.com 处可下载)<br>
    <br>
    1)在线安装<br>
    连接上Internet,开一DOS窗口,在提示符下键入:PPM<br>
    <br>
    PPM&gt; help (可以得到帮助信息)<br>
    PPM&gt; query DBI (可以察看是否已经安装了DBI)<br>
    PPM&gt; install DBI (自动下载并安装DBI,会列出所有安装的文件及路径<br>
    <br>
    2)离线安装<br>
    从www.nighthawk.com.cn处下载DBI.zip,解开到一个临时目录 然后,在dos下,键入命令:<br>
    ppm install dbi.ppd<br>
    <br>
    10. DBI要求什么版本的Perl?<br>
    答:Perl 5.004_04以上<br>
<br>
    11. 如何从一个字符串中过滤特别字符?<br>
    答: 用$dbh-&gt;quote()方法.<br>
    <br>
    quote()方法可从字符串中提取特别字符(如:引号等),然后自动加上右边的引号.  但不<br>
    能处理所有的输入(如二进制数据).<br>
    <br>
    #!/usr/local/bin use DBI;<br>
    # 连接SQL服务器 ....<br>
    # 从网页表单中取得字符信息.<br>
    my $string = $cgi_data{'user_input'};<br>
    $string = $dbh-&gt;quote($string);<br>
    <br>
    # 因为quote已经加上了右边的引号,所以你不必在加上.<br>
    my $sql_q = "SELECT * FROM $table WHERE field = $string ";<br>
    <br>
    12. 有没有可能在$sth中查出SQL语句的类型?<br>
    答:可试下这个:<br>
    if ($sql_statement =~ /^s*(insert|update|delete)/i) { # do something }<br>
    elsif ($sql_statement =~ /^s*select/i) { # do something }<br>
    else { # do something }<br>
<br>
    13. 如何加密一个密码,并将来和输入密码向相比较?<br>
    答: 保存一个密码(即从网页上输入的),首先要对密码加密然后再把它保存在数据库中。<br>
    mysql已经有一个加密函数来对一个字符串加密.<br>
    <br>
    # 连接sql server<br>
    # 从表单中取得user id 和 password<br>
    # 你可能要通过$dbh-&gt;quote()函数来确定输入中没有会破坏SQL语句的字符<br>
    <br>
    my $insert_user = "INSERT INTO $user_table (user_id,password) <br>
      VALUES('$user_id',PASSWORD('$password')";<br>
    my $insert_sth = $dbh-&gt;prepare($insert_user);<br>
    $insert_sth-&gt;execute() or die "Error : $dbh-&gt;errstr";<br>
    <br>
    # 检查用户是否输入了正确的字符<br>
    # 注意 : 又必须先运行dbh-&gt;quote()<br>
    <br>
    my $check_sql = "SELECT * FROM $user_table WHERE <br>
      user_id = $user_id AND passwordfield = PASSWORD('$password_entered')";<br>
    <br>
    如果你不想用mysql的PASSWORD函数, 你可以在保存前用perl的crypt 函数来加密。 进<br>
    行比较时,先对输入密码crypt,然后与保存在数据库中的已加密密码进行比较。<br>
    <br>
    14. 如何在mysql中创建表 ?<br>
    答:试下这个 ..<br>
    CREATE TABLE pictures( picture_id INT UNSIGNED NOT NULL AUTO_INCREMENT,<br>
    category_id SMALLINT UNSIGNED NOT NULL,<br>
    location VARCHAR(40),<br>
    thumb VARCHAR(40),<br>
    title VARCHAR(80) NOT NULL,<br>
    description TINYTEXT,<br>
    last_modified DATE,<br>
    last_viwed DATE,<br>
    view_count INT UNSIGNED,<br>
    user_id VARCHAR(20) NOT NULL,<br>
    colour ENUM('true','false') NOT NULL DEFAULT 'true',<br>
    PRIMARY KEY (picture_id),<br>
    INDEX (title),<br>
    INDEX (user_id),<br>
    INDEX (category_id),<br>
    INDEX (colour) );<br>
<br>
    15. 如何在M个纪录中只列出N个,并用翻页的方法列出其它?<br>
    答:可以采用mysql的LIMIT函数.<br>
    <br>
    注意:下面的代码用了cgi-lib.pl的函数来获取网页输入数据.<br>
        sub List_Result{<br>
        my ($user_action) = @_;<br>
        my %cgi_data;<br>
        &ReadParse(%cgi_data);<br>
        my $limit = 10 ;<br>
        my $offset = $cgi_data{'offset'};<br>
        my $printed = $cgi_data{'printed'};<br>
        my $prev_offset = $cgi_data{'prev_offset'};<br>
        my $next_action = $cgi_data{'next_action'};<br>
        my $print_cnt = 0;<br>
        $new_prev_offset = $offset;<br>
    #下面的代码取得用户的操作<br>
        if ($next_action eq "Next"){<br>
        $offset += $limit;<br>
        }<br>
        elsif($next_action eq "Previous"){<br>
        if ($printed &lt; $limit){<br>
        $offset = $prev_offset;<br>
        }else{<br>
        $offset -= $printed;<br>
        }<br>
        }<br>
        else { $offset = 0 ; }<br>
        }<br>
    <br>
        my $SELECT ;<br>
        my $LIMIT = " LIMIT $offset,$limit";<br>
    <br>
    # 如果$KEEP_SQL 为空,则表示重新开始,用旧的sql语句<br>
        if ($KEEP_SQL eq ""){<br>
        if($user_action eq "list_all"){<br>
        $SELECT = "SELECT * FROM mytable ";<br>
        }<br>
        else{<br>
        $SELECT = "SELECT * FROM mytable WHERE rec_id = $rec_id ";<br>
        }<br>
        }else{<br>
        $SELECT = $KEEP_SQL;<br>
        }<br>
        <br>
        my $SQL = $SELECT.$LIMIT;<br>
    <br>
    # KEEP_SQL将被保存在一个隐含的表段输入中,这个变量保证每次都用一个sql语句.<br>
        my $KEEP_SQL = $SELECT;<br>
        my $sth = $dbh-&gt;prepare($SQL);<br>
        $sth-&gt;execute() or die "Can't execute:";<br>
    <br>
    # 做你想做的事情.<br>
        print " [form method=post action=$this_cgi] ...<br>
    ... 列出结果 ..<br>
        [input type=hidden name=offset value=$offset]<br>
        [input type=hidden name=printed value=$printed]<br>
        [input type=hidden name=prev_offset value=$new_prev_offset]<br>
        [input type=hidden name=user_action value=viewing_result]<br>
        [input type=hidden name=KEEP_SQL value=$KEEP_SQL] ";<br>
        <br>
        if ($offset &gt; 0 ) {print "[input type=submit name=next_action width=100 value="Previous"]n"; }<br>
        if ($printed == $limit){ print "[input type=submit name=next_action width=100 value="Previous"n"]; }<br>
        print "[/form]";<br>
        <br>
    <br>
    16. 如何获得表的字段信息?<br>
    答:    <br>
        #!/usr/bin/perl<br>
        # connect to db<br>
        my $dbh = DBI-&gt;connect(bla..bla..bla);<br>
        my $sql_q = "SHOW COLUMNS FROM $table";<br>
        my $sth = $dbh-&gt;prepare($sql_q);<br>
        $sth-&gt;execute;<br>
        <br>
        while (@row = $sth-&gt;fetchrow_array){<br>
        print"Field Type Null Key Default Extran";<br>
        print"---------------------------------------------------------------n";<br>
        print"$row[0] $row[1] $row[2] $row[3] $row[4] $row[5]n";<br>
        }<br>
<br>
    17. 如何添加一个超级用户 ?<br>
    答: 你可以用GRANT语句:<br>
        shell&gt; mysql --user=root mysql<br>
        mysql&gt; GRANT ALL PRIVILEGES ON *.* TO monty@localhost <br>
               IDENTIFIED BY 'something' WITH GRANT OPTION;<br>
        mysql&gt; GRANT ALL PRIVILEGES ON *.* TO monty@"%" <br>
               IDENTIFIED BY 'something' WITH GRANT OPTION;<br>
    <br>
        超级用户可以从任何地方连接服务器,但必须使用一个密码('something').<br>
        请注意我们同时对monty@localhost和monty@"%"用了GRANT语句。如果不加上<br>
        localhost,当我们(超级用户)从本机上连接时,localhost上mysql_install_db创<br>
        建的匿名用户会取得更高的优先权,因为它有更特别的Host字段值,使得在用户列<br>
        表中占据靠前的位置.<br>
    <br>
    <br>
    18. 如何知道mysql服务器中所有可供使用的数据库?<br>
    答: 用data_sources($driver_name)方法,这个方法返回SQL服务器中数据库名字列表<br>
        例: $db_names = DBI-&gt;data_sources("mysql");<br>
    <br>
    <br>
    19. 如何连接SQL服务器?<br>
    答:<br>
        #!/usr/bin/perl<br>
        use DBI;<br>
        my $database_name = "db_name";<br>
        my $location = "localhost";<br>
        my $port_num = "3306"; # 这是mysql的缺省值<br>
        <br>
        # 定义SQL服务器的位置.<br>
        my $database = "DBI:mysql:$database_name:$location:$port_num";<br>
        my $db_user = "user_name";<br>
        my $db_password = "user_password";<br>
        <br>
        # 连接.<br>
        my $dbh = DBI-&gt;connect($database,$db_user,$db_password);<br>
        <br>
        # 做你要做的事情.. ... ...<br>
        $dbh-&gt;disconnect;<br>
        $exit;<br>
    <br>
    <br>
    20. 如何从SQL服务器上获取记录数据?<br>
    答: 从SQL服务器上获取记录数据,必须先连接服务器,然后提交SQL查询语句,服务器则返回结果<br>
    <br>
        #!/usr/bin/perl<br>
        # 连接服务器 (见22)<br>
        my $sql_statement = "SELECT first_name,last_name FROM $table ORDER BY first_name";<br>
        my $sth = $dbh-&gt;prepare($sql_statement);<br>
        my ($first, $last);<br>
        <br>
        # 结果保存在$sth中 $sth-&gt;execute() or die "无法执行SQL语句:<br>
        $dbh-&gt;errstr"; $sth-&gt;bind_columns(undef, $first, $last);<br>
        my $row; while ($row = $sth-&gt;fetchrow_arrayref) {<br>
        print "$first $lastn";<br>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -