我通过PDO访问我的MySQL数据库.我正在设置对数据库的访问权限,我的第一次尝试是使用以下内容:
我想到的第一件事是global
:
$db = new PDO('mysql:host=127.0.0.1;dbname=toto', 'root', 'pwd');
function some_function() {
global $db;
$db->query('...');
}
Run Code Online (Sandbox Code Playgroud)
这被认为是一种不好的做法.一点点搜索后,我结束了与Singleton模式,其
"适用于需要单个类实例的情况."
根据手册中的示例,我们应该这样做:
class Database {
private static $instance, $db;
private function __construct(){}
static function singleton() {
if(!isset(self::$instance))
self::$instance = new __CLASS__;
return self:$instance;
}
function get() {
if(!isset(self::$db))
self::$db = new PDO('mysql:host=127.0.0.1;dbname=toto', 'user', 'pwd')
return self::$db;
}
}
function some_function() {
$db = Database::singleton();
$db->get()->query('...');
}
some_function();
Run Code Online (Sandbox Code Playgroud)
当我能做到这一点时,为什么我需要相对较大的课程呢?
class Database {
private static $db;
private function __construct(){}
static function get() …
Run Code Online (Sandbox Code Playgroud) 我该如何更改限制
行大小太大(> 8126).将某些列更改为TEXT或BLOB或使用ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED
可能会有所帮助.在当前行格式中,BLOB
内联存储768字节的前缀.
表:
id int(11) No
name text No
date date No
time time No
schedule int(11) No
category int(11) No
top_a varchar(255) No
top_b varchar(255) No
top_c varchar(255) No
top_d varchar(255) No
top_e varchar(255) No
top_f varchar(255) No
top_g varchar(255) No
top_h varchar(255) No
top_i varchar(255) No
top_j varchar(255) No
top_title_a varchar(255) No
top_title_b varchar(255) No
top_title_c varchar(255) No
top_title_d varchar(255) No
top_title_e varchar(255) No
top_title_f varchar(255) No
top_title_g varchar(255) No …
Run Code Online (Sandbox Code Playgroud) 我在数据库类中有一个select()方法,它有一个可选的布尔参数$ sum.该参数用于表示该方法是否应该使用COUNT(*).
我想显示一个警告,就像那些正常的PHP错误,如果我尝试访问class-> sum,如果没有设置属性(即当我用$ sum = false调用select()时).
有没有办法显示这样的警告,或者我应该回应错误并开心?
从PHP7开始,我们现在可以使用标量typehint并在每个文件的基础上请求严格类型.使用这些功能是否有任何性能优势?如果有,怎么样?
在互联网周围,我只发现了概念上的好处,例如:
我有一个设置在TextArea上的TinyMCE,我希望这个编辑器区域始终占据其父div的所有空间.
我有一个JS函数,它获取当前空间并将textarea.style.height设置为它,但是当我启用TinyMCE时,它似乎停止工作.
此外,textarea宽度:100%; 当它也使用TinyMCE时,它不会通过HTML呈现来调整大小.
有任何想法吗?
我目前正在尝试读取我正在使用POST请求调用的PHP脚本中的授权标头.Authorization标头填充了令牌.似乎Authorization标头在它到达我的PHP脚本之前以某种方式被删除.我正在使用Postman(Chrome插件)执行发布请求,并在我的PHP脚本中启用了CORS.我没有直接访问apache服务器.
HTTP请求:
Accept:*/*
Accept-Encoding:gzip,deflate
Accept-Language:de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4,ja;q=0.2
Authorization:Bearer mytoken
Cache-Control:no-cache
Connection:keep-alive
Content-Length:32
Content-Type:text/plain;charset=UTF-8
Host:www.myhost.com
Origin:chrome-extension://fdmmgilgnpjigdojojpjoooidkmcomcm
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/38.0.2125.104 Safari/537.36
Run Code Online (Sandbox Code Playgroud)
PHP脚本:
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: Authorization, Origin, X-Requested-With, Content-Type, Accept");
header("Content-Type: application/json");
$headers = getallheaders();
echo $headers['Authorization'];
Run Code Online (Sandbox Code Playgroud)
上面的脚本输出''(=无).
我正在尝试在Ember中构建一个简单的模态组件,但似乎Handlebars的"逻辑较少"对我来说太不合逻辑了.是否有任何理智的方式来实现这个结果?
<h2>Nice block about {{title}}</h2>
<a href="#" data-toggle="modal" id="add-item-{{title}}"> {{!this works}}
{{#my-modal modal-id="add-item-{{title}}" header='New {{title}}'}} {{! those don't}}
<p>My body blabla</p>
{{/my-modal}}
Run Code Online (Sandbox Code Playgroud)
目前我最终得到了我的模态id "add-item-{{title}}"
,字面意思,以及模态标题.
并且......不,现在我不打算将"标题"作为新的参数传递并在模态中使用它.另一个模板中的模态标题可能不是"新{{title}}",但"你确定吗?" 或"细节{{title}}
".
我有一个特点.为了创造力,让我们称之为特质Trait:
trait Trait{
static function treat($instance){
// treat that trait instance with care
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我还有一个使用这个特性的类,User.当尝试使用User实例调用treat时,一切正常.但我想输入提示,只有使用Trait的类的实例应该作为参数给出,如下所示:
static function treat(Trait $instance){...}
Run Code Online (Sandbox Code Playgroud)
但遗憾的是,这会导致致命的错误,该错误表明该函数期待Trait的一个实例,但是给出了一个User实例.这种类型的提示适用于继承和实现,但我如何键入提示特征?
我在本地计算机上创建了一个存储库,并要求同事克隆它,但它说它无法处理SSH协议.在我的计算机中,存储库位于/devel/scripts.git
,并且有一个用户devel
可以访问该文件夹.另一个人可以正常克隆它,使用git clone ssh://devel@192.168.0.7/devel/scripts.git
.
我们都在使用Ubuntu,我和有问题的机器在12.04(我可以使用与远程相同的URL从另一个文件夹推送)而另一个人正在使用13.04.
最后,遇到问题的机器可以通过SSH正常访问该用户.
正如您在输出中看到的,有几个与异步任务相关的问题:
imagemin
被召唤,下一个直接前进.这使得它的输出出现在任务的最后,这是非常混乱的;build
,这是一个自定义任务,在完成命令后正在使用var done = this.async()
和调用done()
; 但是,如果我单独执行任务,这只能正常工作; 用另一个任务运行它也使它也运行异步;build
以后的运行,jasmine
没有什么可以测试,因此是无用的.有没有办法解决这个问题?
php ×5
javascript ×2
apache ×1
asynchronous ×1
autoresize ×1
ember.js ×1
git ×1
gruntjs ×1
header ×1
html ×1
http ×1
mysql ×1
node.js ×1
oop ×1
performance ×1
php-7 ×1
resize ×1
singleton ×1
ssh ×1
tinymce ×1
traits ×1
type-hinting ×1
types ×1
unix ×1
warnings ×1