PHP新版中推荐的基于对象的数据库服务器的方式。
开始PDO_mysql相关扩展:
基本使用步骤:
连接,认证,发送SQL,等待mysql服务器的执行结果,处理执行结果。
安装PDO:
- 安装pdo
sudo pecl install pdo
出现以下错误是说明pdo已经加入了php的默认安装,不需要再安装了
[Some stuff excluded for brevity]make: * [pdo_dbh.lo] Error 1 ERROR: `make’ failed - 安装pdo_mysql
sudo pecl install pdo_mysql
以下错误表示在pear中找不到pdo_mysql驱动。这是因为在编译时需要mysql的头文件,而默认搜索路径找不到头文件的位置,所以才出现这个问题,所以要将 /usr/include/mysql/(此目录可能有变,需要find / -name mysql 查找具体位置) 目录下的mysql头文件链接到 /usr/local/include/ 的目录下:
sudo ln -s /usr/include/mysql/* /usr/local/include/
- 修改php.ini
先使用find命令查找pdo_mysql.so,然后修改:
extension=/usr/lib/php5/20131226/pdo_mysql.so
- 打开phpinfo(),如果出现,说明已经安装好了。
只需要以下几步:
修改mysqld.cnf中的bind-address=127.0.0.1,将其注释掉。
给予用户访问权限,例如:grant all privileges on . to ‘root’@’5hours’ identified by ‘vagrant’ with grant option;
flush privileges; 刷新权限,使生效
sudo /etc/init.d/mysql restart; 重启mysql
mysql -u root -p -h 192.168.33.147; 进行测试
不过,都是假的,什么只需要以下几步,我花了一个小时才搞好。配置环境绝对是开发人员最头疼的一件事情。
ecshop安装问题:
Strict Standards: Only variables should be passed by reference in F:\wamp\www\ecshop\upload\includes\cls_template.php on line 418
的报错信息。
第一种解决方法是杀到cls_template.php文件中发现下面这段代码:
?
1
tagsel=arrayshift(explode(′′,tag));
忘记说了,我的PHP版本是5.4.19,PHP5.3以上默认只能传递具体的变量,而不能通过函数返回值传递,所以这段代码中的explode就得移出来重新赋值了:
tagArr=explode(′′,tag);
tagsel=arrayshift(tagArr);
这样之后顶部的报错没掉了,左侧和底部的报错还需要去ecshop的后台点击清除缓存才能去除。
Strict Standards: Non-static method cls_image::gd_version() should not be called statically in D:\shop\xampp-portable\htdocs\ecshop\includes\lib_base.php on line 347
在网上搜索了一下,在这里找到了答案:
http://www.cnblogs.com/thinksasa/archive/2013/03/12/2955922.html
具体方法是:
将347行的代码:
return cls_image::gd_version();
改为:
p=newclsimage();returnp->gd_version();
3.
使用记事本或其他PHP编辑软件(如:editplus)打开文件 includes/cls_template.php ,找到
return preg_replace(“/{([^}{\n]*)}/e”, “
this−>select(′\1′);",
source);
替换为
return preg_replace_callback(“/{([^}{\n]*)}/”, function(r)return
this−>select(
r[1]);,source);