小编Dan*_*boy的帖子

初始化PDO时 - 我应该这样做:charset = UTF8或charset = UTF8MB4?

初始化PDO时 - 我应该这样做:charset = UTF8或charset = UTF8MB4?

这是我的初始化:

            $dsn = 'mysql:host=example.com;dbname=testdb;port=3306;charset=UTF8';
            $dbh = new \Pdo($dsn, 'username', 'pass');
            $dbh->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
Run Code Online (Sandbox Code Playgroud)

但是,如果dsn是这样的:

$dsn = 'mysql:host=example.com;dbname=testdb;port=3306;charset=UTF8MB4';
Run Code Online (Sandbox Code Playgroud)

如果mysql数据库有一个默认的字符集UTF8MB4.

mysql pdo character-encoding

16
推荐指数
1
解决办法
8134
查看次数

为什么我不能选中CSS3复选框?

我一直在使用CSS3关注样式复选框的教程,这就是我想出的:

DEMO:

http://cssdeck.com/labs/jaoe0azx

复选框的样式很好 - 但是当我通过表单控件选项卡时 - >正在跳过复选框.有什么建议吗?

HTML:

<form role="form" id="login_form" data-mode="login">
    <div class="form-group">
       <label for="ue">Username or email:</label>
       <input type="email" class="form-control input-lg" name="ue" id="ue" placeholder="" />
    </div>
    <div class="form-group">
       <label for="password">Password:</label>
       <input type="password" class="form-control input-lg" name="password" id="password" placeholder="" />
    </div>
    <div>
          <input id="rememberme" type="checkbox" name="rememberme" value="1" class="checkbox_1" tabindex="0" />
          <label for="rememberme" class="checkbox_1" tabindex="0">remember me</label>
    </div>
    <div id="auth_area_login_button">
        <button class = "btn btn-lg btn-primary">
            Login
        </button>
    </div>
</form>
Run Code Online (Sandbox Code Playgroud)

CSS:

 @import url('//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css');    

#login_form{padding:20px;}

label.checkbox_1 {
    display: inline-block;
    cursor: pointer;
    position: relative; …
Run Code Online (Sandbox Code Playgroud)

html css checkbox css3

13
推荐指数
2
解决办法
1万
查看次数

git pull vs git-fetch有些困惑

所以 - 有人可以澄清这个:

我跑:

git pull origin master  
git status
Run Code Online (Sandbox Code Playgroud)

然后它就会提出改变并说:

your branch is ahead of origin/master ... blahblah by 6 commits...
Run Code Online (Sandbox Code Playgroud)

当我跑的时候

git fetch
git status
Run Code Online (Sandbox Code Playgroud)

它说:

# On branch master
nothing to commit (working directory clean)
Run Code Online (Sandbox Code Playgroud)

所以 - 我认为git pull默认情况下会执行git fetch - 那么为什么它会在没有额外的情况下"提前6次提交" git fetch呢?

git git-pull git-fetch

12
推荐指数
1
解决办法
1021
查看次数

如何测量CSS线高?

CSS中的行高是从文本的底部到下一行文本的底部吗?或者文本是否在行内垂直居中?

请看示例图片:

在此输入图像描述

css

9
推荐指数
2
解决办法
4465
查看次数

7
推荐指数
2
解决办法
2万
查看次数

python使用__init__ vs只是在类中定义变量 - 任何区别?

我是Python的新手 - 只是想更好地理解某些事情背后的逻辑.

为什么我会这样写(默认变量是__init__):

class Dawg:


    def __init__(self):
        self.previousWord = ""
        self.root = DawgNode()
        self.uncheckedNodes = []
        self.minimizedNodes = {}

    def insert( self, word ):
        #...

    def finish( self ):
        #...
Run Code Online (Sandbox Code Playgroud)

而不是这个:

class Dawg:
    previousWord = ""
    root = DawgNode()
    uncheckedNodes = []
    minimizedNodes = {}

    def insert( self, word ):
        #...

    def finish( self ):
        #...
Run Code Online (Sandbox Code Playgroud)

我的意思是 - 为什么我需要使用__init__- >如果我可以直接将默认变量直接添加到类中?

python oop

7
推荐指数
1
解决办法
1955
查看次数

如何通过oauth唯一标识用户登录?

我特别 - 我不明白如何将使用oauth进行身份验证的用户链接到我的应用程序中的特定帐户?

所以这是我的applciation中的帐户:

CREATE TABLE accounts (
    id BIGINT NOT NULL AUTO_INCREMENT,
    username VARCHAR(40),
    email VARCHAR(256),
    created DATETIME,
    updated DATETIME,
    PRIMARY KEY (id),
    UNIQUE KEY (email),
    UNIQUE KEY (username)
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
Run Code Online (Sandbox Code Playgroud)

例如,使用openid有一个唯一标识该用户的唯一用户ID(uri,xri).所以我可以像这样链接到我的帐户:

CREATE TABLE openid_logins (
    id BIGINT NOT NULL auto_increment,
    fk_accounts_id BIGINT NOT NULL,
    openid_identity TEXT NOT NULL, /*that's unique user id*/
    openid_provider_url VARCHAR(255) NOT NULL,  /*flickr, yahoo, live_journal*/
    PRIMARY KEY (id),
    INDEX (openid_identity),
    FOREIGN KEY (fk_accounts_id) REFERENCES accounts(id) ON UPDATE …
Run Code Online (Sandbox Code Playgroud)

openid oauth oauth-2.0

6
推荐指数
1
解决办法
529
查看次数

约束符号vs外键索引名称 - >有什么区别?

在mysql中,外键的定义如下:

[CONSTRAINT [symbol]] FOREIGN KEY
    [index_name] (index_col_name, ...)
    REFERENCES tbl_name (index_col_name,...)
    [ON DELETE reference_option]
    [ON UPDATE reference_option]
Run Code Online (Sandbox Code Playgroud)

为什么我们需要CONSTRAINT和符号?似乎还有index_name - 所以我完全没有得到CONSTRAINT关键字的原因.有人可以澄清它的用途吗?

mysql

5
推荐指数
1
解决办法
1689
查看次数

PHP - 为什么在我的代码中通过引用复制DateTime对象?

为什么在这段代码中我的DateTime对象被引用复制似乎?
这是我的代码:

<?php

date_default_timezone_set('UTC');

$dt1 = new \DateTime('2015-03-15');
$dt2 = $dt1;
$dt2 = $dt2->modify('-1 year');

echo $dt1->format('c') . PHP_EOL;
echo $dt2->format('c');

?>
Run Code Online (Sandbox Code Playgroud)

我在期待:

2015-03-15T00:00:00+00:00
2014-03-15T00:00:00+00:00
Run Code Online (Sandbox Code Playgroud)

但我得到了这个:

2014-03-15T00:00:00+00:00
2014-03-15T00:00:00+00:00
Run Code Online (Sandbox Code Playgroud)

php datetime

5
推荐指数
1
解决办法
4725
查看次数

Mysql UNIQUE KEY约束 - a和å被视为相同的字符

我在列上有一个唯一的键.当我插入a然后å它抛出一个错误:

PHP致命错误:未捕获异常'PDOException',消息'SQLSTATE [23000]:完整性约束违规:1062重复条目'å'表示密钥'constraint-1''..

....但是a并且å是不同的UTF字符 - 所以发生了什么......?

表有DEFAULT CHARSET=utf8mb4utf8mb4_unicode_ci整理.

php mysql unicode utf-8 utf8mb4

5
推荐指数
1
解决办法
217
查看次数

php preg_math_all匹配错误的字符串

我有这个子模式:

<?php                                                                                                                                                                                                                                          

    $wavs = 'aaaa="" wav="d" bbbbb="" wav="gerg" ccccc="" wav="" ddddd=""';        
    preg_match_all('#(?<=wav=").+?(?=")#', $wavs, $matches);                    
    print_r($matches);                                                          
?> 
Run Code Online (Sandbox Code Playgroud)

它导致此输出:

php test.php 
Array
(
    [0] => Array
        (
            [0] => d
            [1] => gerg
            [2] => " ddddd=
        )

)
Run Code Online (Sandbox Code Playgroud)

虽然我预计只有2场比赛:

php test.php 
Array
(
    [0] => Array
        (
            [0] => d
            [1] => gerg
        )

)
Run Code Online (Sandbox Code Playgroud)

这是什么问题?为什么要捕获额外无关的字符串?

编辑:( M42响应)

preg_match_all('#(?<=wav=").*?(?=")#', $wavs, $matches);  
Run Code Online (Sandbox Code Playgroud)

仍导致不正确的匹配:

Array
(
    [0] => Array
        (
            [0] => d
            [1] => gerg
            [2] => 
            [3] => " ddddd=
        ) …
Run Code Online (Sandbox Code Playgroud)

php regex preg-match-all preg-match

2
推荐指数
1
解决办法
112
查看次数

尝试对分号分隔的单词列表运行正则表达式

我有一个以分号分隔的单词列表(大约180,000个单词),如下所示:

;test;dog;cat;hello;whatever;
Run Code Online (Sandbox Code Playgroud)

如何使用正则表达式获取包含特定子字符串的所有单词的aray?例如 - 如何让所有单词hat包含字母a?我试过这个:

preg_match_all('#(?:;).*a.*(?:;)#u', $one_line, $matches);
Run Code Online (Sandbox Code Playgroud)

^但它似乎没有产生正确的结果?...我做错了什么?

php regex pcre

1
推荐指数
1
解决办法
776
查看次数

为什么这个Python代码不能在__hash__中导致无限循环?

我是一个python newb,我只是想了解这里的逻辑:

class SomeClass:

    #...
    def __hash__(self):
        return self.__str__().__hash__()

    def __str__(self):        
        arr = []
        if self.final: 
            arr.append("1")
        else:
            arr.append("0")

        for (label, node) in self.edges.iteritems():
            arr.append( label )
            arr.append( str( node.id ) )

        return "_".join(arr)

    #...

someObj = SomeClass()  
hash(someObj)  
Run Code Online (Sandbox Code Playgroud)

我正在读它的方式是这样的:

如果我尝试hash()在类SomeClass的对象上调用函数 - >那么__hash__将执行魔术方法.__hash__方法调用__str__方法然后在__hash__方法的结果__str__上第二次调用方法- >其中imho导致循环引用和无限循环...

有人可以向我解释 - 这不是__hash__一次又一次被召唤的无限循环吗?

python circular-reference

1
推荐指数
1
解决办法
120
查看次数