{"id":1090,"date":"2025-06-12T12:39:19","date_gmt":"2025-06-12T04:39:19","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/symfony\/1090.html"},"modified":"2025-06-12T12:39:19","modified_gmt":"2025-06-12T04:39:19","slug":"%e5%a6%82%e4%bd%95%e4%bd%bf%e7%94%a8-doctrine-%e4%bf%ae%e6%94%b9%e6%95%b0%e6%8d%ae%e8%a1%a8","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/1090.html","title":{"rendered":"\u5982\u4f55\u4f7f\u7528 Doctrine \u4fee\u6539\u6570\u636e\u8868"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#35201;&#20351;&#29992; Doctrine &#20462;&#25913;&#25968;&#25454;&#34920;&#65292;&#20320;&#21487;&#20197;&#25353;&#29031;&#20197;&#19979;&#27493;&#39588;&#36827;&#34892;&#25805;&#20316;&#65306;<\/p>\n<ol>\n<li>\n<p><strong>&#23433;&#35013;&#21644;&#37197;&#32622; Doctrine<\/strong>&#65306;\n&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#30830;&#20445;&#20320;&#30340;&#39033;&#30446;&#24050;&#32463;&#23433;&#35013;&#20102; Doctrine&#65292;&#24182;&#19988;&#37197;&#32622;&#20102;&#25968;&#25454;&#24211;&#36830;&#25509;&#20449;&#24687;&#12290;<\/p>\n<\/li>\n<li>\n<p><strong>&#21019;&#24314;&#23454;&#20307;&#31867;<\/strong>&#65306;\n&#20351;&#29992; Doctrine &#30340; <code>doctrine:generate:entities<\/code> &#21629;&#20196;&#26469;&#29983;&#25104;&#23454;&#20307;&#31867;&#12290;&#20363;&#22914;&#65292;&#22914;&#26524;&#20320;&#26377;&#19968;&#20010;&#21517;&#20026; <code>User<\/code> &#30340;&#23454;&#20307;&#31867;&#65292;&#21487;&#20197;&#36816;&#34892;&#20197;&#19979;&#21629;&#20196;&#65306;<\/p>\n<pre><code class=\"language-bash\">php bin\/console doctrine:generate:entities src\/Entity<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#20462;&#25913;&#23454;&#20307;&#31867;<\/strong>&#65306;\n&#22312;&#29983;&#25104;&#30340;&#23454;&#20307;&#31867;&#25991;&#20214;&#65288;&#36890;&#24120;&#26159; <code>src\/Entity\/User.php<\/code>&#65289;&#20013;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807;&#28155;&#21152;&#12289;&#20462;&#25913;&#25110;&#21024;&#38500;&#23646;&#24615;&#26469;&#20462;&#25913;&#25968;&#25454;&#34920;&#32467;&#26500;&#12290;&#20363;&#22914;&#65292;&#20551;&#35774;&#20320;&#24819;&#22686;&#21152;&#19968;&#20010;&#26032;&#30340;&#23383;&#27573; <code>email<\/code>&#65292;&#21487;&#20197;&#22312; <code>User<\/code> &#31867;&#20013;&#28155;&#21152;&#20197;&#19979;&#20195;&#30721;&#65306;<\/p>\n<pre><code class=\"language-php\">use DoctrineORMMapping as ORM;\n\n\/**\n* @ORMEntity\n*\/\nclass User\n{\n   \/**\n    * @ORMId\n    * @ORMGeneratedValue(strategy=\"AUTO\")\n    * @ORMColumn(type=\"integer\")\n    *\/\n   private $id;\n\n   \/**\n    * @ORMColumn(type=\"string\", length=255)\n    *\/\n   private $username;\n\n   \/**\n    * @ORMColumn(type=\"string\", length=255)\n    *\/\n   private $password;\n\n   \/\/ Getter and Setter methods\n}<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#26356;&#26032;&#25968;&#25454;&#24211; schema<\/strong>&#65306;\n&#20026;&#20102;&#20351;&#26356;&#25913;&#29983;&#25928;&#65292;&#20320;&#38656;&#35201;&#26356;&#26032;&#25968;&#25454;&#24211;&#30340; schema&#12290;&#21487;&#20197;&#20351;&#29992; Doctrine &#30340; <code>doctrine:schema:update<\/code> &#21629;&#20196;&#65306;<\/p>\n<pre><code class=\"language-bash\">php bin\/console doctrine:schema:update --force<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#39564;&#35777;&#20462;&#25913;<\/strong>&#65306;\n&#26368;&#21518;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807;&#26597;&#35810;&#25968;&#25454;&#24211;&#26469;&#39564;&#35777;&#26159;&#21542;&#25104;&#21151;&#20462;&#25913;&#20102;&#25968;&#25454;&#34920;&#32467;&#26500;&#12290;&#20363;&#22914;&#65292;&#20351;&#29992; SQL &#26597;&#35810;&#65306;<\/p>\n<pre><code class=\"language-sql\">SELECT * FROM users;<\/code><\/pre>\n<\/li>\n<\/ol>\n<p>&#20197;&#19979;&#26159;&#19968;&#20010;&#23436;&#25972;&#30340;&#31034;&#20363;&#20195;&#30721;&#65292;&#23637;&#31034;&#20102;&#22914;&#20309;&#20351;&#29992; Doctrine &#20462;&#25913;&#25968;&#25454;&#34920;&#65306;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\nrequire_once 'vendor\/autoload.php';\n\nuse DoctrineORMToolsConsoleConsoleRunner;\nuse DoctrineORMToolsSchemaTool;\n\n\/\/ &#21019;&#24314; EntityManager &#23454;&#20363;\n$entityManager = require_once 'path\/to\/config\/doctrine.php';\n\n\/\/ &#33719;&#21462; SchemaTool &#23454;&#20363;\n$schemaTool = new SchemaTool($entityManager);\n\n\/\/ &#33719;&#21462;&#25152;&#26377;&#23454;&#20307;&#31867;\n$entityClasses = $entityManager-&gt;getMetadataFactory()-&gt;getAllMetadata();\n\n\/\/ &#26356;&#26032;&#25968;&#25454;&#24211; schema\n$schemaTool-&gt;updateSchema($entityClasses);<\/code><\/pre>\n<p>&#36890;&#36807;&#20197;&#19978;&#27493;&#39588;&#65292;&#20320;&#23601;&#21487;&#20197;&#20351;&#29992; Doctrine &#26469;&#20462;&#25913;&#25968;&#25454;&#34920;&#20102;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;Bug&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#40657;&#26495;Bug&#35762;&#24072;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<body><h2>&#20171;&#32461;<\/h2><p>Doctrine &#26159;&#19968;&#20010;&#24378;&#22823;&#30340;&#38754;&#21521;&#23545;&#35937;&#30340;&#25968;&#25454;&#24211;&#26144;&#23556;&#65288;ORM&#65289;&#24037;&#20855;&#65292;&#29992;&#20110;&#36890;&#36807;&#23545;&#35937;&#27169;&#22411;&#19982; PHP &#20132;&#20114;&#36827;&#34892;&#25968;&#25454;&#24211;&#25805;&#20316;&#12290;Doctrine &#25552;&#20379;&#20102;&#26680;&#24515;&#21151;&#33021;&#20043;&#19968;&#65292;&#21363;&#33021;&#22815;&#36890;&#36807;&#25968;&#25454;&#24211;&#31649;&#29702;&#26469;&#26356;&#25913;&#25968;&#25454;&#24211;&#34920;&#32467;&#26500;&#12290;&#22312;&#26412;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#23558;&#25506;&#35752;&#22914;&#20309;&#20351;&#29992; Doctrine &#36801;&#31227;&#26469;&#26377;&#25928;&#22320;&#26356;&#25913;&#24744;&#30340;&#25968;&#25454;&#24211;&#34920;&#12290;<\/p><h2>&#24320;&#22987;&#20351;&#29992;<\/h2><p>&#22312;&#25105;&#20204;&#28145;&#20837;&#35752;&#35770;&#20043;&#21069;&#65292;&#35831;&#30830;&#20445;&#24744;&#24050;&#32463;&#22312;&#39033;&#30446;&#20013;&#23433;&#35013;&#24182;&#37197;&#32622;&#20102;Doctrine&#12290;&#22914;&#26524;&#24744;&#20351;&#29992;&#30340;&#26159;Symfony&#26694;&#26550;&#65292;&#37027;&#20040;Doctrine&#20250;&#33258;&#21160;&#23433;&#35013;&#12290;&#21542;&#21017;&#65292;&#24744;&#21487;&#20197;&#20351;&#29992;Composer&#22312;&#24744;&#30340;&#39033;&#30446;&#20013;&#21253;&#21547;Doctrine&#65306;<\/p><pre><code>composer require doctrine\/orm<\/code><\/pre><p>&#25105;&#20204;&#23558;&#20551;&#35774;&#24744;&#24050;&#32463;&#35774;&#32622;&#20102;&#25968;&#25454;&#24211;&#36830;&#25509;&#21644;&#37197;&#32622;&#12290;&#35753;&#25105;&#20204;&#20174;&#19968;&#20010;&#22522;&#26412;&#30340;&#20363;&#23376;&#24320;&#22987;&#65292;&#21363;&#21521;&#29616;&#26377;&#34920;&#28155;&#21152;&#26032;&#21015;&#12290;<\/p><h3>&#28155;&#21152;&#26032;&#21015;<\/h3><pre><code>\/\/ src\/Entity\/YourEntity.php\n\nuse Doctrine\\ORM\\Mapping as ORM;\n\n\/**\n * @ORM\\\ntity\n * @ORM\\\table(name=\"your_table\")\n *\/\nclass YourEntity\n{\n    \/\/ ...\n    \/**\n     * @ORM\\Column(type=\"string\", nullable=true)\n     *\/\n    private $newColumn;\n\n    \/\/ ...\n}\n<\/code><\/pre><p>&#22312;&#20462;&#25913;&#20102;&#23454;&#20307;&#31867;&#20043;&#21518;&#65292;&#23558;&#20250;&#29983;&#25104;&#19968;&#20010;&#26032;&#30340;&#36801;&#31227;&#65306;<\/p><pre><code>php bin\/console make:migration<\/code><\/pre><p>&#36825;&#23558;&#22312;&#36801;&#31227;&#25991;&#20214;&#22841;&#20013;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#36801;&#31227;&#25991;&#20214;&#12290;<code>\/migrations<\/code>&#30446;&#24405;&#12290;&#24212;&#29992;&#36801;&#31227;&#20197;&#26356;&#26032;&#25968;&#25454;&#24211;&#27169;&#24335;&#65306;<\/p><pre><code>php bin\/console doctrine:migrations:migrate<\/code><\/pre><p>Doctrine &#20250;&#29983;&#25104;&#28155;&#21152;&#26032;&#21015;&#30340; SQL &#26597;&#35810;&#24182;&#25191;&#34892;&#22312;&#20320;&#30340;&#25968;&#25454;&#24211;&#19978;&#12290;<\/p><h2>&#26356;&#25913;&#21015;&#23646;&#24615;<\/h2><p>&#22914;&#26524;&#20320;&#38656;&#35201;&#20462;&#25913;&#29616;&#26377;&#21015;&#30340;&#23646;&#24615;&#65292;&#35831;&#30456;&#24212;&#22320;&#26356;&#26032;&#23454;&#20307;&#31867;&#65306;<\/p><pre><code>\/\/ src\/Entity\/YourEntity.php\n\n\/\/ ...\n\/**\n * @ORM\\Column(type=\"string\", length=255, nullable=false)\n *\/\nprivate $existingColumn;\n\/\/ ...\n<\/code><\/pre><p>&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#36801;&#31227;&#24182;&#25353;&#29031;&#20043;&#21069;&#30340;&#26041;&#24335;&#24212;&#29992;&#23427;&#12290;Doctrine &#20250;&#35843;&#25972;&#25968;&#25454;&#24211;&#20013;&#30340;&#21015;&#35774;&#32622;&#12290;<\/p><h2>&#37325;&#21629;&#21517;&#21015;<\/h2><p>&#35201;&#37325;&#21629;&#21517;&#19968;&#20010;&#21015;&#65292;&#20320;&#38656;&#35201;&#20351;&#29992;&#12290;<code>schema:update<\/code>&#25163;&#21160;&#32534;&#20889;&#36801;&#31227;&#21629;&#20196;&#65306;<\/p><pre><code>php bin\/console doctrine:migrations:diff\nphp bin\/console doctrine:migrations:migrate<\/code><\/pre><p>&#35831;&#25552;&#20379;&#38656;&#35201;&#20462;&#25913;&#30340;&#36801;&#31227;&#25991;&#20214;&#20869;&#23481;&#65292;&#25105;&#26469;&#24110;&#20320;&#32534;&#36753;&#12290;<\/p><pre><code>\/\/ migrations\/VersionXXXXXX.php\n\npublic function up(Schema $schema): void\n{\n    $this-&gt;addSql('ALTER TABLE your_table RENAME COLUMN old_column_name TO new_column_name');\n}\n<\/code><\/pre><p>&#20877;&#27425;&#25191;&#34892;&#12290;<code>migrations:migrate<\/code>&#21629;&#20196;&#24212;&#29992;&#26356;&#25913;&#12290;<\/p><h2>&#31227;&#38500;&#21015;<\/h2><p>&#35201;&#31227;&#38500;&#21015;&#65292;&#35831;&#31616;&#21333;&#21024;&#38500;&#23454;&#20307;&#20013;&#30340;&#23646;&#24615;&#24182;&#29983;&#25104;&#19968;&#20010;&#26032;&#30340;&#36801;&#31227;&#65306;<\/p><pre><code>\/\/ src\/Entity\/YourEntity.php\n\n\/\/ Remove the column property\n<\/code><\/pre><p>&#28982;&#21518;&#65292;&#21019;&#24314;&#24182;&#25191;&#34892;&#19968;&#20010;&#26032;&#30340;&#36801;&#31227;&#12290;<\/p><h2>&#39640;&#32423;&#34920;&#21333;&#26356;&#25913;<\/h2><p>&#26356;&#22797;&#26434;&#30340;&#25805;&#20316;&#65292;&#22914;&#26356;&#25913;&#20027;&#38190;&#12289;&#28155;&#21152;&#32034;&#24341;&#25110;&#22806;&#38190;&#65292;&#38656;&#35201;&#32534;&#20889;&#33258;&#23450;&#20041;&#36801;&#31227;&#65306;<\/p><pre><code>\/\/ migrations\/VersionXXXXXX.php\n\npublic function up(Schema $schema): void\n{\n    \/\/ Example of adding a primary key\n    $this-&gt;addSql('ALTER TABLE your_table ADD PRIMARY KEY (column1, column2)');\n\n    \/\/ Example of adding an index\n    $this-&gt;addSql('CREATE INDEX your_index ON your_table (column)');\n\n    \/\/ Example of adding a foreign key\n    $this-&gt;addSql('ALTER TABLE your_table ADD CONSTRAINT fk_foreign_key_name FOREIGN KEY (column) REFERENCES other_table (id) ON DELETE CASCADE');\n}\n<\/code><\/pre><p>&#36825;&#20123;&#25805;&#20316;&#22312;&#24212;&#29992;&#21040;&#29983;&#20135;&#25968;&#25454;&#24211;&#20043;&#21069;&#65292;&#24212;&#35813;&#20808;&#22312;&#24320;&#21457;&#29615;&#22659;&#20013;&#36827;&#34892;&#27979;&#35797;&#12290;<\/p><h2>&#32467;&#35770;&#12290;<\/h2><p>&#32508;&#19978;&#25152;&#36848;&#65292;&#20351;&#29992;Doctrine&#26356;&#26032;&#34920;&#28041;&#21450;&#19968;&#22871;&#31995;&#32479;&#21270;&#30340;&#26041;&#27861;&#26469;&#26356;&#26032;&#23454;&#20307;&#24182;&#29983;&#25104;&#36801;&#31227;&#25991;&#20214;&#12290;&#20511;&#21161;Doctrine&#30340;&#36801;&#31227;&#24037;&#20855;&#65292;schema&#21464;&#26356;&#21464;&#24471;&#21487;&#25511;&#19988;&#29256;&#26412;&#25511;&#21046;&#65292;&#30830;&#20445;&#25968;&#25454;&#24211;&#32467;&#26500;&#19982;&#24212;&#29992;&#31243;&#24207;&#21516;&#27493;&#21457;&#23637;&#12290;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312;PHP&#20013;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;Doctrine ORM&#26469;&#25805;&#20316;&#25968;&#25454;&#24211;&#12290;&#20197;&#19979;&#26159;&#22914;&#20309;&#20351;&#29992;Doctrine&#20462;&#25913;&#25968;&#25454;&#34920;&#30340;&#27493;&#39588;&#65306;<\/p>\n<ol>\n<li>\n<p>&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#23433;&#35013;&#24182;&#37197;&#32622;&#22909;PDO&#39537;&#21160;&#21644;Doctrine&#12290;<\/p>\n<\/li>\n<li>\n<p>&#28982;&#21518;&#65292;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#23454;&#20307;&#31867;&#65292;&#24182;&#23450;&#20041;&#23427;&#30340;&#23646;&#24615;&#12290;<\/p>\n<\/li>\n<li>\n<p>&#25509;&#30528;&#65292;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;ORM&#26144;&#23556;&#25991;&#20214;&#65288;&#20363;&#22914;&#65306;entity.php&#65289;&#65292;&#23558;&#20320;&#30340;&#23454;&#20307;&#31867;&#19982;&#25968;&#25454;&#24211;&#20013;&#30340;&#34920;&#20851;&#32852;&#36215;&#26469;&#12290;<\/p>\n<\/li>\n<li>\n<p>&#26368;&#21518;&#65292;&#32534;&#20889;SQL&#35821;&#21477;&#26469;&#26356;&#26032;&#34920;&#20013;&#30340;&#25968;&#25454;&#12290;<\/p>\n<\/li>\n<\/ol>\n<p>&#19979;&#38754;&#26159;&#19968;&#20010;&#31616;&#21333;&#30340;&#20363;&#23376;&#65306;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\n\/\/ 1. &#23433;&#35013;&#24182;&#37197;&#32622;PDO&#39537;&#21160;&#21644;Doctrine\nrequire_once 'vendor\/autoload.php';\n\n$entityManager = DoctrineORMEntityManager::create();\n\n\/\/ 2. &#21019;&#24314;&#26032;&#30340;&#23454;&#20307;&#31867;\nclass User extends DoctrineORMMappingEntity {\n    public $id;\n    public $name;\n}\n\n\/\/ 3. &#21019;&#24314;&#19968;&#20010;&#26032;&#30340;ORM&#26144;&#23556;&#25991;&#20214;\nuse DoctrineORMMapping as ORM;\n\n@ORMEntity\n@ORMTable(name=\"users\")\nclass User {\n\n    @ORMId\n    @ORMColumn(type=\"integer\")\n    private $id;\n\n    @ORMColumn(type=\"string\", length=50)\n    private $name;\n}<\/code><\/pre>\n<ol start=\"4\">\n<li>&#26368;&#21518;&#65292;&#32534;&#20889;SQL&#35821;&#21477;&#26469;&#26356;&#26032;&#34920;&#20013;&#30340;&#25968;&#25454;&#65306;\n<pre><code class=\"language-php\">$sql = \"UPDATE users SET name=:name WHERE id=:id\";\n$stmt = $entityManager-&gt;getConnection()-&gt;prepare($sql);\n$stmt-&gt;execute(array(\n':name' =&gt; 'John Doe',\n':id'   =&gt; 1,\n));<\/code><\/pre><\/li>\n<\/ol>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#39318;&#20808;&#21019;&#24314;&#20102;&#19968;&#20010;&#21517;&#20026;<code>User<\/code>&#30340;&#26032;&#23454;&#20307;&#31867;&#65292;&#28982;&#21518;&#21019;&#24314;&#20102;&#23545;&#24212;&#30340;ORM&#26144;&#23556;&#25991;&#20214;&#12290;&#26368;&#21518;&#65292;&#25105;&#20204;&#22312;ORM&#26144;&#23556;&#25991;&#20214;&#20013;&#23450;&#20041;&#20102;&#19968;&#20010;SQL&#26597;&#35810;&#65292;&#29992;&#20110;&#26356;&#26032;<code>users<\/code>&#34920;&#20013;&#30340;&#25968;&#25454;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#35201;&#20351;&#29992; Doctrine &#20462;&#25913;&#25968;&#25454;&#34920;&#65292;&#20320;&#21487;&#20197;&#25353;&#29031;&#20197;&#038;#..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[45],"tuisongtax":[],"class_list":["post-1090","my1js","type-my1js","status-publish","hentry","my1js2nav-symfony"],"acf":{"qian_art_seotitle":"","qian_art_seotitle_source":{"label":"SEO\u6807\u9898","type":"text","formatted_value":""},"qian_art_seokws":"","qian_art_seokws_source":{"label":"SEO\u5173\u952e\u8bcd","type":"text","formatted_value":""},"qian_art_stzhong":"","qian_art_stzhong_source":{"label":"\u4e2d | \u77ed\u6807\u9898","type":"text","formatted_value":""}},"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js\/1090","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/types\/my1js"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/media?parent=1090"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=1090"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=1090"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=1090"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}