PHP学习心得


数据库操作

<h2>第三方bundle的支持</h2> <ul> <li>bundle(软件)</li> </ul> <h2>获取数据</h2> <pre><code class="language-php">$user_list = $em-&gt;getRepository('User')-&gt;find(array('id' =&gt; 1)); $user_info = $em-&gt;getRepository('User')-&gt;findOneBy(array('id' =&gt; 1));</code></pre> <h2>修改数据</h2> <pre><code class="language-php">$user-&gt;setName('user_name'); //修改字段名称 $em-&gt;presist($user); //实例化对象 $em-&gt;flush(); //生成一条upadte语句</code></pre> <h2>Doctrine2基本概念</h2> <ul> <li>实体对象 Entity <ul> <li>字段 关系</li> </ul></li> <li>对象操作集合 Repository</li> <li>代理类 Proxy Class</li> <li>DQL,类似于PDO查询</li> <li>事件监听机制</li> </ul> <h2>使用MySQL workbench进行数据库设计</h2> <ul> <li>设计数据库关系和主要字段</li> <li>配置Symfony2数据库连接</li> <li>配置Entity</li> <li>生成get/set/repository</li> <li>生成真实数据库</li> </ul> <h2>使用Doctrine2进行数据操作</h2> <pre><code class="language-php">$user = new User(1, 2, 'wanguw'); $user-&gt;setAge(19); $user-&gt;setEmail('wang@163.com'); $em = $this-&gt;getDoctrine()-&gt;getEntityManager(); $em-&gt;persist($user); $em-&gt;flush();</code></pre> <h2>直接调用sql语句</h2> <pre><code class="language-php">$this-&gt;get('database_connection')-&gt;fetchAll('select * from user');</code></pre> <h2>手动控制事务</h2> <pre><code class="language-php">$user-&gt;getConnection()-&gt;beginTransaction(); try{ $user-&gt;getConnection()-&gt;commit(); } catch(Exception $e) { $user-&gt;getConnection()-&gt;rollback(); } // 或,第二种不建议用。 $user-&gt;transaction(function($user) { // });</code></pre> <h2>打印信息</h2> <pre><code class="language-php">Debug::dump($user); // 不用系统自带打印功能,打印出来信息特别多,打印的都是封装的对象,信息特别多。</code></pre>

页面列表

ITEM_HTML