استخدام متغير داخل heredoc في PHP(ممارسة SQL)



variables (1)

يحتاج Heredoc الخاص بك إلى تعديل بسيط (لأنه في الواقع Nowdoc!):

    echo <<<EX
    <p>Game: {$data['game_name']}<br/>
    the owner of the game is {$data['game_owner']}
    </p>
EX;
  • لا يمكن تحديد معرّفات الهريدوك (على عكس المعرفين الآن). 'EX' يجب أن يصبح EX .
  • يجب ألا يكون للفاصل في Heredoc أي مسافة بيضاء سابقة. من المستندات:

    من المهم ملاحظة أن السطر الذي يحتوي على معرّف الإغلاق يجب ألا يحتوي على أحرف أخرى ، باستثناء الفاصلة المنقوطة (؛).

    أنت تربك Nowdoc مع Heredoc.

  • يجب أن تكون أنواع البيانات المعقدة في السلاسل محاطة بـ {} حتى يتم تحليلها كمتغيرات. على سبيل المثال ، يجب أن تكون $data['game_name] هي {$data['game_name]} .

أنت تخلط الهراطقة و nowdoc هنا. تريد استخدام Heredoc وليس Nowdoc لأن لديك المتغيرات داخل السلسلة الخاصة بك. إن السلاسل الموسيقية هي عبارة عن سلاسل مقتبسة مزدوجة "موسعة" ، في حين أن النصوص الآن أقرب إلى سلسلة واحدة محددة ، حيث لا يتم تحليل هذه المتغيرات في سلاسل nowdoc ، ولكنها موجودة في heredoc.

  • المزيد عن Heredoc here .
  • المزيد على Nowdoc here .

يرجى قراءة الوثائق بعناية أكثر.

https://src-bin.com

أنا مبتدئ ل PHP / SQL وأنا أحاول استخدام متغير داخل heredoc لأنني بحاجة إلى الكثير من النص. لقد قمت بتضمين الجملة الأولى فقط لأنها كافية لإظهار المشكلة).

مشكلتي هي أن المتغيرات (انظر أدناه: $data['game_name] و $data['game_owner'] ) لا يتم التعرف عليها كمتغير ولكن كنص عادي. كيف يمكنني حل هذا؟

<?php
try
{
    //i am connecting the the database base mysql 'test'
    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options);
    //the i read the data in the databse 'video_dame'
    $response = $bdd->query('SELECT * FROM video_game');
    //pour qu'elle soit visible à l'écran, on affiche chaque entrée une à une
    while ($data= $response->fetch())
    {
    echo <<<'EX'
    <p>Game: $data['game_name]<br/>
    the owner of the game is $data['game_owner']
    </p>
    EX;
    }
    //i end the sql request
    $response->closeCursor();
}
catch (Exception $e)
{
    die('Error: '.$e->getMessage());
}
?>

أي مساعدة سيكون محل تقدير كبير.





heredoc