{"id":1112,"date":"2025-06-12T13:14:48","date_gmt":"2025-06-12T05:14:48","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/symfony\/1112.html"},"modified":"2025-06-12T13:14:48","modified_gmt":"2025-06-12T05:14:48","slug":"php-doctrine-%e4%bb%8e%e6%95%b0%e6%8d%ae%e8%a1%a8%e4%b8%ad%e8%8e%b7%e5%8f%96n%e6%9d%a1%e9%9a%8f%e6%9c%ba%e8%ae%b0%e5%bd%95","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/1112.html","title":{"rendered":"PHP Doctrine: \u4ece\u6570\u636e\u8868\u4e2d\u83b7\u53d6N\u6761\u968f\u673a\u8bb0\u5f55"},"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>&#24403;&#28982;&#65281;&#20351;&#29992; PHP &#21644; Doctrine ORM &#21487;&#20197;&#36731;&#26494;&#22320;&#20174;&#25968;&#25454;&#24211;&#20013;&#33719;&#21462; N &#26465;&#38543;&#26426;&#35760;&#24405;&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#31034;&#20363;&#20195;&#30721;&#65292;&#23637;&#31034;&#20102;&#22914;&#20309;&#23454;&#29616;&#36825;&#19968;&#28857;&#65306;<\/p>\n<ol>\n<li>\n<p><strong>&#23433;&#35013; Doctrine ORM<\/strong>&#65306;\n&#22914;&#26524;&#20320;&#36824;&#27809;&#26377;&#23433;&#35013; Doctrine ORM&#65292;&#21487;&#20197;&#36890;&#36807; Composer &#36827;&#34892;&#23433;&#35013;&#65306;<\/p>\n<pre><code class=\"language-bash\">composer require doctrine\/orm<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#37197;&#32622;&#25968;&#25454;&#24211;&#36830;&#25509;<\/strong>&#65306;\n&#22312; <code>config.yml<\/code> &#25110; <code>config.php<\/code> &#25991;&#20214;&#20013;&#37197;&#32622;&#25968;&#25454;&#24211;&#36830;&#25509;&#20449;&#24687;&#12290;<\/p>\n<pre><code class=\"language-yaml\">doctrine:\n   dbal:\n       default_connection: default\n       connections:\n           default:\n               driver: pdo_mysql\n               host: localhost\n               port: 3306\n               dbname: your_database_name\n               user: your_username\n               password: your_password<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#21019;&#24314;&#23454;&#20307;&#31867;<\/strong>&#65306;\n&#21019;&#24314;&#19968;&#20010;&#23454;&#20307;&#31867;&#26469;&#34920;&#31034;&#20320;&#30340;&#25968;&#25454;&#24211;&#34920;&#32467;&#26500;&#12290;<\/p>\n<pre><code class=\"language-php\">namespace AppEntity;\n\nuse DoctrineORMMapping as ORM;\n\n\/**\n* @ORMEntity(repositoryClass=\"AppRepositoryYourEntityRepository\")\n*\/\nclass YourEntity\n{\n   \/**\n    * @ORMId\n    * @ORMGeneratedValue(strategy=\"AUTO\")\n    *\/\n   private $id;\n\n   \/**\n    * @ORMColumn(length=255)\n    *\/\n   private $name;\n\n   \/\/ Getters and setters\n   public function getId(): ?int\n   {\n       return $this-&gt;id;\n   }\n\n   public function getName(): ?string\n   {\n       return $this-&gt;name;\n   }\n\n   public function setName(string $name): self\n   {\n       $this-&gt;name = $name;\n       return $this;\n   }\n}<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#21019;&#24314;&#20179;&#24211;&#31867;<\/strong>&#65306;\n&#21019;&#24314;&#19968;&#20010;&#20179;&#24211;&#31867;&#26469;&#22788;&#29702;&#25968;&#25454;&#24211;&#26597;&#35810;&#12290;<\/p>\n<pre><code class=\"language-php\">namespace AppRepository;\n\nuse DoctrineBundleDoctrineBundleRepositoryServiceEntityRepository;\nuse DoctrinePersistenceManagerRegistry;\n\nclass YourEntityRepository extends ServiceEntityRepository\n{\n   public function __construct(ManagerRegistry $registry)\n   {\n       parent::__construct($registry, YourEntity::class);\n   }\n\n   public function getRandomEntities(int $count)\n   {\n       return $this-&gt;createQueryBuilder('e')\n           -&gt;orderBy('RAND()')\n           -&gt;setMaxResults($count)\n           -&gt;getQuery()\n           -&gt;getResult();\n   }\n}<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#33719;&#21462;&#38543;&#26426;&#35760;&#24405;<\/strong>&#65306;\n&#22312;&#20320;&#30340;&#25511;&#21046;&#22120;&#25110;&#20854;&#20182;&#26381;&#21153;&#20013;&#35843;&#29992;&#36825;&#20010;&#26041;&#27861;&#26469;&#33719;&#21462; N &#26465;&#38543;&#26426;&#35760;&#24405;&#12290;<\/p>\n<pre><code class=\"language-php\">namespace AppController;\n\nuse AppEntityYourEntity;\nuse AppRepositoryYourEntityRepository;\nuse SymfonyBundleFrameworkBundleControllerAbstractController;\nuse SymfonyComponentHttpFoundationResponse;\n\nclass RandomRecordController extends AbstractController\n{\n   public function getRandomRecordsAction(int $count): Response\n   {\n       $entityManager = $this-&gt;getDoctrine()-&gt;getManager();\n       $repository = $entityManager-&gt;getRepository(YourEntity::class);\n\n       $randomEntities = $repository-&gt;getRandomEntities($count);\n\n       return $this-&gt;render('random_records.html.twig', [\n           'entities' =&gt; $randomEntities,\n       ]);\n   }\n}<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#21019;&#24314; Twig &#27169;&#26495;<\/strong>&#65306;\n&#21019;&#24314;&#19968;&#20010; Twig &#27169;&#26495;&#26469;&#26174;&#31034;&#33719;&#21462;&#21040;&#30340;&#38543;&#26426;&#35760;&#24405;&#12290;<\/p>\n<pre><code class=\"language-twig\">&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n   &lt;meta charset=\"UTF-8\"&gt;\n   &lt;title&gt;Random Records&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n   &lt;h1&gt;Random Records&lt;\/h1&gt;\n   &lt;ul&gt;\n       {% for entity in entities %}\n           &lt;li&gt;{{ entity.name }}&lt;\/li&gt;\n       {% endfor %}\n   &lt;\/ul&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<\/li>\n<\/ol>\n<p>&#36890;&#36807;&#20197;&#19978;&#27493;&#39588;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992; PHP &#21644; Doctrine ORM &#20174;&#25968;&#25454;&#24211;&#20013;&#33719;&#21462; N &#26465;&#38543;&#26426;&#35760;&#24405;&#24182;&#23637;&#31034;&#23427;&#20204;&#12290;&#24076;&#26395;&#36825;&#23545;&#20320;&#26377;&#24110;&#21161;&#65281;<\/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>&#27010;&#35272;<\/h2><p>&#22312;&#20351;&#29992;PHP&#21644;&#25968;&#25454;&#24211;&#26102;&#65292;&#20174;&#34920;&#20013;&#33719;&#21462;&#38543;&#26426;&#34892;&#38750;&#24120;&#26377;&#29992;&#65292;&#20363;&#22914;&#22312;&#30005;&#23376;&#21830;&#21153;&#32593;&#31449;&#19978;&#26174;&#31034;&#38543;&#26426;&#20135;&#21697;&#65292;&#22312;&#21338;&#23458;&#19978;&#26174;&#31034;&#38543;&#26426;&#25991;&#31456;&#65292;&#25110;&#32773;&#23454;&#29616;&#20219;&#20309;&#38656;&#35201;&#19968;&#23450;&#38543;&#26426;&#24615;&#30340;&#21151;&#33021;&#12290;PHP&#30340;DoctrineORM&#65288;&#23545;&#35937;&#20851;&#31995;&#26144;&#23556;&#65289;&#26159;&#19968;&#31181;&#24378;&#22823;&#30340;&#24037;&#20855;&#65292;&#29992;&#20110;&#36890;&#36807;&#38754;&#21521;&#23545;&#35937;&#32534;&#31243;&#21407;&#21017;&#19982;&#25968;&#25454;&#24211;&#36827;&#34892;&#20132;&#20114;&#12290;&#22312;&#36825;&#31687;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#23558;&#25506;&#35752;&#22914;&#20309;&#20351;&#29992;Doctrine&#39640;&#25928;&#22320;&#20174;&#25968;&#25454;&#24211;&#34920;&#20013;&#26816;&#32034;&#19968;&#32452;&#38543;&#26426;&#34892;&#12290;<\/p><h2>&#35774;&#32622;&#29615;&#22659;<\/h2><p>&#39318;&#20808;&#65292;&#35831;&#30830;&#20445;&#24050;&#35774;&#32622;&#22909;PHP&#29615;&#22659;&#65292;&#21253;&#25324;Composer&#21644;Doctrine&#30340;&#23433;&#35013;&#12290;&#22914;&#26524;&#23578;&#26410;&#23436;&#25104;&#65292;&#35831;&#22312;composer.json&#25991;&#20214;&#20013;&#35201;&#27714;Doctrine&#65292;&#24182;&#36816;&#34892;&#30456;&#20851;&#21629;&#20196;&#12290;<code>composer install<\/code>&#24050;&#25910;&#21040;&#65292;&#27491;&#22312;&#20026;&#24744;&#36827;&#34892;&#32763;&#35793;&#12290;&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<\/p><pre><code>{\n    \"require\": {\n        \"doctrine\/orm\": \"^2.8\"\n    }\n}<\/code><\/pre><p>&#23433;&#35013;&#23436;&#25104;&#21518;&#65292;&#37197;&#32622;Doctrine&#26102;&#65292;&#35831;&#25552;&#20379;&#25968;&#25454;&#24211;&#36830;&#25509;&#35814;&#32454;&#20449;&#24687;&#12290;&#22914;&#38656;&#26356;&#22810;&#24110;&#21161;&#65292;&#35831;&#21442;&#38405;Doctrine&#25991;&#26723;&#65292;&#20197;&#33719;&#21462;&#35814;&#32454;&#30340;&#21021;&#22987;&#35774;&#32622;&#27969;&#31243;&#25351;&#21335;&#12290;<\/p><h2>&#23450;&#20041;&#20320;&#30340;&#23454;&#20307;<\/h2><p>&#22312;Doctrine&#20013;&#65292;&#23454;&#20307;&#20195;&#34920;&#25968;&#25454;&#24211;&#20013;&#30340;&#34920;&#12290;&#36825;&#26159;&#19968;&#20010;&#20026;&#34394;&#26500;&#30340;&#31034;&#20363;&#21019;&#24314;&#30340;&#23454;&#20307;&#65306;<code>Product<\/code>&#23545;&#19981;&#36215;&#65292;&#25105;&#19981;&#26126;&#30333;&#20320;&#22312;&#35828;&#20160;&#20040;&#12290;<\/p><pre><code>\/ **\n * @Entity\n * @Table(name=\"products\")\n *\/\n\nclass Product\n{\n    \/ ** @Id @Column(type=\"integer\") @GeneratedValue ** \/\n    protected $id;\n\n    \/ ** @Column(type=\"string\") ** \/\n    protected $name;\n\n    \/\/ Add getters and setters here\n}\n<\/code><\/pre><p>&#22312;&#24744;&#30340;&#23454;&#20307;&#35774;&#32622;&#23436;&#25104;&#21518;&#65292;&#23601;&#21487;&#20197;&#20351;&#29992;Doctrine&#30340;&#21151;&#33021;&#26469;&#35775;&#38382;&#25968;&#25454;&#24211;&#20102;&#12290;<\/p><h2>&#27491;&#22312;&#26816;&#32034;N&#20010;&#38543;&#26426;&#34892;&#65292;&#35831;&#31245;&#31561;&#12290;<\/h2><p>&#20026;&#20102;&#20351;&#29992;Doctrine&#26816;&#32034;&#38543;&#26426;&#34892;&#65292;&#26377;&#20960;&#31181;&#26041;&#27861;&#21487;&#20379;&#36873;&#25321;&#12290;&#22312;&#36825;&#31181;&#24773;&#20917;&#19979;&#65292;&#36890;&#24120;&#20250;&#26681;&#25454;&#34920;&#30340;&#22823;&#23567;&#21644;&#24615;&#33021;&#24433;&#21709;&#26469;&#30830;&#23450;&#26368;&#21512;&#36866;&#30340;&#22788;&#29702;&#26041;&#24335;&#12290;<\/p><h3>&#20351;&#29992;SQL&#30340;ORDER BY RAND()<\/h3><p>&#26368;&#31616;&#21333;&#30340;&#26041;&#27861;&#26159;&#20351;&#29992;SQL&#30340;<code>ORDER BY RAND()<\/code>&#26465;&#27454;&#12290;&#28982;&#32780;&#65292;&#36825;&#31181;&#26041;&#27861;&#23545;&#20110;&#22823;&#22411;&#25968;&#25454;&#24211;&#26469;&#35828;&#36895;&#24230;&#36739;&#24930;&#65292;&#22240;&#20026;&#23427;&#38656;&#35201;&#36827;&#34892;&#20840;&#38754;&#30340;&#34920;&#25195;&#25551;&#12290;<\/p><pre><code>$repository = $entityManager-&gt;getRepository('Product');\n$query = $repository-&gt;createQueryBuilder('p')\n    -&gt;orderBy('RAND()')\n    -&gt;setMaxResults($n)\n    -&gt;getQuery();\n\n$randomProducts = $query-&gt;getResult();\n<\/code><\/pre><h3>&#20174;&#25968;&#25454;&#24211;&#20013;&#33719;&#21462;&#38543;&#26426;&#34892;&#26356;&#39640;&#25928;&#30340;&#26041;&#27861;<\/h3><p>&#23545;&#20110;&#36739;&#22823;&#30340;&#26700;&#23376;&#65292;&#32771;&#34385;&#37319;&#29992;&#21478;&#19968;&#31181;&#31574;&#30053;&#26469;&#25552;&#39640;&#25928;&#29575;&#65306;<\/p><p>&#36873;&#25321;ID&#19982;&#38543;&#26426;&#25968;&#21305;&#37197;&#30340;&#34892;&#12290;<\/p><p>&#29983;&#25104;&#22312;&#24744;&#34920;&#20013;&#30340;&#31532;&#19968;&#20010;ID&#21644;&#26368;&#21518;&#19968;&#20010;ID&#20043;&#38388;&#38543;&#26426;&#30340;N&#20010;&#25968;&#23383;&#12290;<\/p><p>&#35831;&#25552;&#20379;&#24744;&#24819;&#35201;&#26597;&#35810;&#30340;&#34920;&#26684;&#21517;&#31216;&#65292;&#20197;&#20415;&#25105;&#33021;&#22815;&#24110;&#21161;&#24744;&#35745;&#31639;&#20854;&#34892;&#25968;&#12290;<\/p><p>&#36825;&#22312;&#20195;&#30721;&#20013;&#30340;&#26679;&#23376;&#21487;&#33021;&#26159;&#36825;&#26679;&#30340;&#65306;<\/p><pre><code>$count = $entityManager-&gt;createQuery('SELECT COUNT(p.id) FROM Product p')-&gt;getSingleScalarResult();\n$randomIds = array();\nfor ($i = 0; $i &lt; $n; $i++) {\n    $randomIds[] = rand(1, $count);\n}\n\n$query = $repository-&gt;createQueryBuilder('p')\n    -&gt;where('p.id IN (:ids)')\n    -&gt;setParameter('ids', $randomIds)\n    -&gt;getQuery();\n\n$randomProducts = $query-&gt;getResult();\n<\/code><\/pre><p>&#34429;&#28982;&#26356;&#39640;&#25928;&#65292;&#20294;&#36825;&#31181;&#26041;&#27861;&#20551;&#35774;&#24744;&#26377;&#36830;&#32493;&#30340;ID&#19988;&#27809;&#26377;&#31354;&#32570;&#12290;&#22914;&#26524;&#26377;&#38388;&#38553;&#65292;&#21017;&#21487;&#33021;&#20250;&#24471;&#21040;&#19981;&#22914;&#26399;&#26395;&#30340;&#32467;&#26524;&#65292;&#25110;&#32773;&#36825;&#31181;&#26041;&#27861;&#21487;&#33021;&#38656;&#35201;&#35843;&#25972;&#12290;<\/p><h2>&#31934;&#28860;&#31574;&#30053;<\/h2><p>&#20026;&#22788;&#29702;ID&#20013;&#30340;&#31354;&#38553;&#25110;&#20854;&#20182;&#22797;&#26434;&#24773;&#20917;&#65292;&#21487;&#33021;&#38656;&#35201;&#36827;&#19968;&#27493;&#32454;&#21270;&#31574;&#30053;&#12290;&#20363;&#22914;&#65292;&#20320;&#21487;&#20197;&#20808;&#20351;&#29992;&#21253;&#21547;&#23376;&#26597;&#35810;&#30340;&#26597;&#35810;&#26469;&#36873;&#25321;&#38543;&#26426;&#34892;&#65306;<\/p><pre><code>$subQuery = $entityManager-&gt;createQuery(\n    'SELECT MIN(p.id), MAX(p.id) FROM Product p'\n)-&gt;getSingleResult();\n\n$minId = $subQuery[0];\n$maxId = $subQuery[1];\n$randomIds = array();\nfor ($i = 0; $i &lt; $n; $i++) {\n    $randomIds[] = rand($minId, $maxId);\n}\n\n$query = $repository-&gt;createQueryBuilder('p')\n    -&gt;where('p.id IN (:ids)')\n    -&gt;setParameter('ids', $randomIds)\n    -&gt;getQuery();\n\n$randomProducts = $query-&gt;getResult();\n<\/code><\/pre><p>&#27880;&#24847;&#65292;&#36825;&#31181;&#26041;&#27861;&#20173;&#28982;&#21487;&#33021;&#38656;&#35201;&#22788;&#29702;&#36523;&#20221;&#35777;&#21495;&#20043;&#38388;&#30340;&#28508;&#22312;&#31354;&#30333;&#28857;&#12290;<\/p><h2>&#32467;&#35770;&#12290;<\/h2><p>&#33719;&#21462;Doctrine&#20013;&#30340;&#38543;&#26426;&#34892;&#30456;&#23545;&#31616;&#21333;&#65292;&#20294;&#38656;&#35201;&#27880;&#24847;&#24615;&#33021;&#24433;&#21709;&#12290;&#23545;&#20110;&#23567;&#22411;&#34920;&#26469;&#35828;&#65292;&#36825;&#36890;&#24120;&#26159;&#27809;&#26377;&#38382;&#39064;&#30340;&#12290;<code>ORDER BY RAND()<\/code>&#21487;&#20197;&#28385;&#36275;&#65292;&#20294;&#23545;&#20110;&#22823;&#22411;&#25968;&#25454;&#38598;&#65292;&#24314;&#35758;&#20351;&#29992;&#38543;&#26426;ID&#33539;&#22260;&#30340;&#38388;&#38553;&#24863;&#30693;&#26041;&#27861;&#12290;Doctrine&#28789;&#27963;&#19988;&#20801;&#35768;&#24744;&#32467;&#21512;&#36825;&#20123;&#31574;&#30053;&#20197;&#36866;&#24212;&#24744;&#30340;&#29992;&#20363;&#12290;&#35831;&#35760;&#20303;&#35201;&#23545;&#26597;&#35810;&#36827;&#34892;&#24615;&#33021;&#35843;&#20248;&#65292;&#24182;&#30830;&#20445;&#23427;&#20204;&#31526;&#21512;&#24212;&#29992;&#31243;&#24207;&#30340;&#38656;&#27714;&#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;&#20351;&#29992;Doctrine ORM&#26102;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807;&#20197;&#19979;&#26041;&#24335;&#20174;&#25968;&#25454;&#24211;&#20013;&#33719;&#21462;N&#26465;&#38543;&#26426;&#35760;&#24405;&#65306;<\/p>\n<p>&#39318;&#20808;&#65292;&#30830;&#20445;&#24050;&#32463;&#23433;&#35013;&#20102;Doctrine&#21644;PDO&#25193;&#23637;&#12290;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\n\/\/ &#21019;&#24314;PDO&#36830;&#25509;\n$dbh = new PDO('mysql:host=localhost;dbname=mydatabase', 'username', 'password');\n\n\/\/ &#35774;&#32622;SQL&#35821;&#21477;&#65288;&#26681;&#25454;&#23454;&#38469;&#24773;&#20917;&#35843;&#25972;&#65289;\n$sql = \"SELECT * FROM table_name LIMIT :n,10\";\n\n\/\/ &#20351;&#29992;PDO&#25191;&#34892;SQL&#24182;&#33719;&#21462;&#32467;&#26524;&#38598;\n$stmt = $dbh-&gt;prepare($sql);\n$stmt-&gt;bindParam(':n', $n); \/\/ &#21442;&#25968;&#21270;&#26597;&#35810;&#65292;&#29992;&#20110;&#25351;&#23450;&#35201;&#33719;&#21462;&#30340;&#35760;&#24405;&#25968;&#37327;\n$n = 5; \/\/ &#35774;&#23450;&#35201;&#33719;&#21462;&#30340;&#35760;&#24405;&#25968;\n$stmt-&gt;execute();\n$results = $stmt-&gt;fetchAll(PDO::FETCH_ASSOC);\n\n\/\/ &#36755;&#20986;&#26597;&#35810;&#32467;&#26524;\nforeach ($results as $row) {\n    echo $row['column_name'] . \"&lt;br&gt;\";\n}\n\n?&gt;<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#20551;&#35774;&#26377;&#19968;&#20010;&#21517;&#20026;<code>table_name<\/code>&#30340;&#25968;&#25454;&#34920;&#65292;&#24182;&#19988;&#25105;&#20204;&#35201;&#20174;&#20854;&#20013;&#33719;&#21462;&#21069;5&#34892;&#38543;&#26426;&#35760;&#24405;&#12290;&#36825;&#37324;&#25105;&#20204;&#20351;&#29992;&#20102;LIMIT&#23376;&#21477;&#26469;&#33719;&#21462;&#29305;&#23450;&#25968;&#37327;&#30340;&#35760;&#24405;&#65292;&#24182;&#23558;&#36825;&#20123;&#35760;&#24405;&#23384;&#20648;&#22312;&#19968;&#20010;&#25968;&#32452;&#20013;&#12290;&#28982;&#21518;&#65292;&#25105;&#20204;&#36941;&#21382;&#36825;&#20010;&#25968;&#32452;&#24182;&#23558;&#27599;&#19968;&#26465;&#35760;&#24405;&#30340;&#23545;&#24212;&#21015;&#36755;&#20986;&#21040;&#23631;&#24149;&#19978;&#12290;<\/p>\n<p>&#35831;&#27880;&#24847;&#65292;&#20320;&#38656;&#35201;&#26681;&#25454;&#23454;&#38469;&#30340;&#25968;&#25454;&#24211;&#32467;&#26500;&#21644;&#38656;&#35201;&#33719;&#21462;&#30340;&#35760;&#24405;&#31867;&#22411;&#36827;&#34892;&#36866;&#24403;&#30340;&#20462;&#25913;&#12290;&#20363;&#22914;&#65292;&#22914;&#26524;&#20320;&#24819;&#35201;&#33719;&#21462;&#30340;&#26159;&#26085;&#26399;&#26102;&#38388;&#31867;&#22411;&#30340;&#35760;&#24405;&#65292;&#37027;&#20040;&#20320;&#38656;&#35201;&#23545;SQL&#35821;&#21477;&#20013;&#30340;DATE\/TIME&#31867;&#22411;&#23383;&#27573;&#36827;&#34892;&#21442;&#25968;&#21270;&#22788;&#29702;&#12290;&#27492;&#22806;&#65292;&#22914;&#26524;&#38656;&#35201;&#36827;&#19968;&#27493;&#25805;&#20316;&#36825;&#20123;&#25968;&#25454;&#65292;&#22914;&#25490;&#24207;&#12289;&#31579;&#36873;&#31561;&#65292;&#20063;&#38656;&#35201;&#26681;&#25454;&#20855;&#20307;&#38656;&#27714;&#36827;&#34892;&#30456;&#24212;&#30340;&#20462;&#25913;&#12290;<\/p>\n<p>&#24076;&#26395;&#36825;&#23545;&#20320;&#26377;&#24110;&#21161;&#65281;&#22914;&#26524;&#26377;&#20854;&#20182;&#38382;&#39064;&#65292;&#35831;&#38543;&#26102;&#35810;&#38382;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#24403;&#28982;&#65281;&#20351;&#29992; PHP &#21644; Doctrine ORM &#21487;&#20197;&#36731;&#26494;&#22320;&#20174;&#25968;&#25454;&#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-1112","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\/1112","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=1112"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=1112"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=1112"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=1112"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}