Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

pdo के माध्यम से क्वेरी बंद करें

यहां मुख्य समस्या पीआईडी ​​​​को आपके एसिंक अनुरोध के बीच साझा करना है जो रिपोर्ट उत्पन्न करता है और स्क्रिप्ट जो इसे रोकना चाहिए।

आप निम्न का उपयोग करके अपना पीआईडी ​​प्राप्त कर सकते हैं:

    $stmt = $dbh->prepare("SELECT CONNECTION_ID()");
    $stmt->execute();
    $pid = $stmt->fetchColumn();

और आप php-shared-memory जैसी किसी चीज़ का उपयोग कर सकते हैं अपनी स्क्रिप्ट के बीच एक साझा चर बनाने के लिए। यदि आप अपनी परियोजना निर्भरता के लिए संगीतकार का उपयोग नहीं कर रहे हैं, तो इस पुस्तकालय में एक स्टैंडअलोन रिलीज़ है (1.5.0, यहां )।

कार्यान्वयन नमूना:

<?php

if (!include __DIR__ . '/vendor/autoload.php')
{
    die('You must set up the project dependencies.');
}

use Fuz\Component\SharedMemory\SharedMemory;
use Fuz\Component\SharedMemory\Storage\StorageFile;

// your intializations here

$storage = new StorageFile("/tmp/shared.{$user_id}.sync");
$shared = new SharedMemory($storage);

if (!isset($_POST['cancel_request']))
{
    $stmt = $dbh->prepare("SELECT CONNECTION_ID()");
    $stmt->execute();
    $pid = $stmt->fetchColumn();

    $shared->pid = $pid;

    // your long query here

    $shared->destroyStorage();
}
else
{
    // kills pid
    $pid = $shared->pid;
    if (!is_null($pid))
    {
        $dbh->exec("KILL {$pid}");
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल सर्वर 2008 में अंतिम डाली गई आईडी प्राप्त करें

  2. CSV फ़ाइल को MySQL तालिका में कैसे आयात करें

  3. मैं चयनित आइटम को ड्रॉप डाउन बॉक्स में कैसे सेट करूं

  4. डेटाबेस पासवर्ड संग्रहीत करने के लिए सर्वोत्तम अभ्यास

  5. उपयोगकर्ता जानकारी और उपयोगकर्ता लॉगिन और पासवर्ड को सर्वोत्तम तरीके से कैसे स्टोर करें