初始化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.
我一直在使用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) 所以 - 有人可以澄清这个:
我跑:
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呢?
我如何转换这样的字符串:
<span class="it">CONTENT</span>
Run Code Online (Sandbox Code Playgroud)
进入:
{it}CONTENT{/it}
Run Code Online (Sandbox Code Playgroud)
在保持内容完整的同时?
我是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__- >如果我可以直接将默认变量直接添加到类中?
我特别 - 我不明白如何将使用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) 在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关键字的原因.有人可以澄清它的用途吗?
为什么在这段代码中我的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) 我在列上有一个唯一的键.当我插入a然后å它抛出一个错误:
PHP致命错误:未捕获异常'PDOException',消息'SQLSTATE [23000]:完整性约束违规:1062重复条目'å'表示密钥'constraint-1''..
....但是a并且å是不同的UTF字符 - 所以发生了什么......?
表有DEFAULT CHARSET=utf8mb4 和utf8mb4_unicode_ci整理.
我有这个子模式:
<?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) 我有一个以分号分隔的单词列表(大约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)
^但它似乎没有产生正确的结果?...我做错了什么?
我是一个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__一次又一次被召唤的无限循环吗?