我读了这篇文章:http://www.mysqlperformanceblog.com/2006/09/27/apc-or-memcached/当时..我希望得到最好的缓存引擎,以便我的应用程序非常快.当然我不想过度缓存,但我想至少选择最好的东西.在那篇文章中它说Memcached很慢而且apc很快所以为什么每个人都选择memcached?
http://framework.zend.com/manual/en/zend.cache.backends.html#zend.cache.backends.twolevels在这里说"使用快速的(但有限的)像Apc,Memcache ......和a "慢"一个像File,Sqlite ......"你认为使用Apc作为快速和Memcache,因为慢是一个好主意?
在以下查询中
SELECT col1,col2
FROM table1
WHERE col3='value1'
AND col4='value2'
Run Code Online (Sandbox Code Playgroud)
如果我在col3上有一个单独的索引,而在col4上有另一个索引,那么在这个查询中将使用哪一个?
我在某处读到,对于查询中的每个表,只使用一个索引.这是否意味着查询无法使用这两个索引?
其次,如果我同时使用col3和col4创建了一个复合索引,但在WHERE子句中只使用了col3,那么性能会更差吗?例:
SELECT col1,col2
FROM table1
WHERE col3='value1'
Run Code Online (Sandbox Code Playgroud)
最后,在所有情况下使用覆盖索引是否更好?MYISAM和innodb存储引擎有什么不同?
考虑这种情况,我正在尝试为公司建模数据库:
Employees,Managers,Departments.Employee只有1作品Department而Department可能有许多Employees在它的工作.Manager可以只管理1个Department,类似的Department可能只有1个Manager.Manager监督很多Employees,但一个Employee只由一个监督Manager.现在我有两种方法来模拟这个:
第一解决方案
我会考虑Manager实体继承Employee实体,考虑到我将保留管理者独有的数据(例如奖金和状态).
由于之间的关系Department,并Employee为1:N后来我就把这
Department Id作为一个外键Employee表的Works
关系.
由于之间的关系Department,并Manager为1:1后来我就把这
Department Id作为一个外键Manager表的Manages
关系.
问题:我如何表示Manager和之间的递归关系Employee?
二解决方案:
我认为Manager不需要实体其他Employees …
我正在寻找一个Dreamweaver扩展来自动美化PHP/JavaScript/jQuery代码.目前,Dreamweaver只能美化HTML和CSS(应用源格式).
任何形式的帮助将不胜感激.
Markdown似乎比HTML更容易编写和编辑.我见过的所有HTML编辑器都输出了大量不必要的垃圾.Markdown似乎更清洁.
以下是我正在考虑的事项:在数据库中存储markdown,使用PHP Markdown将其转换为HTML ,然后将其输出到Web浏览器.
一个问题是每次请求页面时都必须这样做.这似乎有点贵.
这是一个好主意吗?或者有更有效的方法吗?
<?php
$mysqli = mysqli_init();
if (!$mysqli) {
die('mysqli_init failed');
}
$mysqli->ssl_set('/path/to/client-key.pem',
'/path/to/client-cert.pem',
'/path/to/ca-cert.pem',
NULL,NULL); //<-- Doesn't matter if the paths are right or wrong
if (!$mysqli->options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
die('Setting MYSQLI_INIT_COMMAND failed');
}
if (!$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
die('Setting MYSQLI_OPT_CONNECT_TIMEOUT failed');
}
if (!$mysqli->real_connect('xx.xx.xx.xx', 'my_user', 'my_password', 'my_db')) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
echo 'Success... ' . $mysqli->host_info . "\n";
$mysqli->close();
?>
Run Code Online (Sandbox Code Playgroud)
我无法连接到MySql.它给出以下错误:
Message: SQLSTATE[28000] [1045] Access denied …Run Code Online (Sandbox Code Playgroud) 我正在尝试Zend_Mail使用以下代码发送邮件:
function sendMail() {
$config = array('auth' => 'login',
'username' => 'UserName',
'password' => 'Password',
'port'=>'27');
$mail = new Zend_Mail();
$mail->setBodyText($mailBody);
$mail->setFrom('example@host.com', 'The Company Name');
$mail->addTo('example@host.com', 'Recipient Name');
$mail->setSubject('Mail subject');
$mail->send(new Zend_Mail_Transport_Smtp('example@server.com', $config));
}
Run Code Online (Sandbox Code Playgroud)
现在的问题是$mailBody有法语字符.例如:
Merci d'avoir passé commande avec Lovre. Voici le récapitulatif de votre commande
Run Code Online (Sandbox Code Playgroud)
当然后查看发送的邮件时,同样的行显示如下:
Merci d'avoir pass? commande avec Lovre. Voici le r?capitulatif de votre commande
Run Code Online (Sandbox Code Playgroud)
口音被问号所取代!我尝试使用编码邮件正文utf8_encode,但问题仍然存在.
注意:使用的文本文件读取正文内容file_get_contents.
我有一个很大的php对象,我想序列化并存储在MySql数据库中.表编码是,UTF-8并且用于保存序列化对象编码的列也是UTF-8.
问题是该对象包含一个包含法语字符的文本字符串.
例如:
Merci d'avoir passé commande avec Lovre. Voici le récapitulatif de votre commande
Run Code Online (Sandbox Code Playgroud)
当我序列化对象然后再次反序列化它时,字符串被维护并且格式正确.
但是,当我将序列化对象存储到MySql数据库然后再次检索它然后反序列化它时,字符串变为如下所示:
Merci d'avoir passé commande avec Lovre. Voici le récapitulatif de votre commande
Run Code Online (Sandbox Code Playgroud)
将对象存储在数据库中时出现问题.
笔记:
text.我正在使用Zend Framework构建应用程序.该应用程序需要密集记录代码中的每个操作或功能.
所以我的代码大部分时间都是这样的:
function SendMailsAction(){
$logger->log('Started sending mails.')
...
...
...Some Code...
...
...
foreach ($mails as $mail){
try{
$logger->log('Trying to send')
$mail->send()
$logger->log('Mail sent successfully.')
}catch(Exception $e){
$logger->log('Failed to send mail.')
}
}
...
...
...Some Code...
...
...
$logger->log('Finished sending mails.')
}
Run Code Online (Sandbox Code Playgroud)
有时我甚至必须登录2个表,因此大多数日志记录代码加倍,并且函数开始变得复杂和冗长.
我使用Zend框架Zend_Log进行日志记录,所以我的问题不是日志记录类本身,而是如何将日志记录代码与代码功能本身分开并保持关注点的分离.
有些人建议使用面向方面编程(AOP),但遗憾的是AOP for PHP对我的客户来说是不可接受的,所以我正在寻找面向对象的解决方案或最佳实践.
注意:
只是为了弄清楚我的问题不是如何使用Zend_Log,而是如何将日志记录添加到我的应用程序代码中.
我有以下代码:
class Orders{
/**
*
* @var Supplier
*/
private $suppliers; //Array of Supplier
function loopAllSuppliers(){
foreach($this->suppliers as $supplier){
$supplier->/*no suggestion*/ //Can't get the method's to show here
$this->suppliers->getSupplierName(); //methods in class Supplier show normally here
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题很简单.我只是想能够为我的变量声明一个类型,$supplier就像我用它做的那样$suppliers.
笔记: