मेरे मौजूदा कार्यों और स्थिर चरों का प्रयास करें, आप उन स्थिरांक को अपने पास मौजूद एक सरणी चर में भी बदल सकते हैं।
define("SERVER_SQL_VERSION","mysql");
define("SQL_SERVER","localhost");
define("SQL_PORT","3306");
define("SQL_USERNAME","root");
define("SQL_PASSWORD","");
define("SQL_DB_NAME","db");
if(!function_exists('pdoConnect')) {
function pdoConnect() {
$pdo = new PDO(SERVER_SQL_VERSION.":host=".SQL_SERVER.";dbname=".SQL_DB_NAME."", "".SQL_USERNAME."", "".SQL_PASSWORD."");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
return $pdo;
}
}
आपके संयोजन के बारे में कोई समस्या हो सकती है, यह काम कर रहा होगा...
मैंने SERVER_SQL_VERSION को भी अलग किया, और यह जांचने के लिए एक फ़ंक्शन जोड़ा कि क्या ड्राइवर उपलब्ध है ... मैं XAMPP सॉफ़्टवेयर का उपयोग कर रहा हूं और केवल mysql और sqlite सक्रिय है, यदि आप/अन्य लोग postgresql का उपयोग करने का प्रयास करते हैं और इसी तरह ... साथ ही काम करें।
if(!function_exists('check_sql_version')) {
function check_sql_version() {
$sql_available = false; //make it false yet
foreach(PDO::getAvailableDrivers() as $key => $val) {
if(SERVER_SQL_VERSION == $val)
{
$sql_available = true;
}
}
//check now if sql_available is true or false
if($sql_available == true)
return true;
else
return false;
}
}
तो एक नमूने पर विचार किया जाना चाहिए:
if(!check_sql_version()) {
echo '('.SERVER_SQL_VERSION.') is not available, you only have this drivers:<br/>';
foreach(PDO::getAvailableDrivers() as $key => $val) {
$key = $key + 1;
echo $key.') '.$val.'<br/>';
}
exit(); //exit and dont proceed
}
$stmt = pdoConnect()->prepare("SELECT * FROM accounts");
$stmt->execute();
मुझे आशा है कि यह मदद करता है!