PDA

View Full Version : سوال: مشکل اتصال به دیتابیس ساخته شده توسط کاربر



hamed_naghdi
یک شنبه 30 آذر 1393, 01:19 صبح
سلام.
من مدت زیادی بود که دیگه php کار نمی‌کردم و الآن که نیاز شد بیام سراغش یه مشکل خیلی خیلی عجیب بر خوردم.
این کدر رو ببینید:




<?php
$dbhost='localhost';
$dbuser='------';
$dbpass='****';
$db = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_set_charset('utf8',$db);
if(!$db){
echo 'can not connect to server';
}
else{
$database = 'xxxxxx';
$select = mysql_select_db($database);
if($select){
echo 'database selected. <br/>';
}
else{
echo 'database not select. <br/>';
}
$query = 'select * from test';
$result = mysql_query($query);
if($result){
$num = mysql_num_rows($result);
echo 'number of row is'.$num.'<br/>';
echo 'ok';
}
else{
echo 'no ok';
}
mysql_close($db);
}
?>



خیلی جالبه به mysql کانکت می‌شه ولی دیتا بیس رو انتخاب نمی‌کنه. برام جالب بود چون وقتی دیتابیس خود سرور رو یعنی information_schema (https://5.144.130.33:2083/cpsess3043794691/3rdparty/phpMyAdmin/db_structure.php?server=1&db=information_schema&token=017375714be4926c15c690c87fd86ce8) رو انتخاب کردم به راحتی انتخاب شد ولی دیتا بیس xxxxxx خودم انتخاب نمی‌شه.
حتی روی سیستم دیتابیس درست کردم و به هاست انتقال دادم بازم نشد.
من تازه کار نیستم و حتی از کدهایی که قبلا خودم نوشته بودم و روی همین هاست هم امتحان کرده بودم استفاده کردم بازم دیتابیس رو انتخاب نمی‌کرد. لطفاً راهنمایی کنید. من که حسابی گیج شدم.

hsgpro
یک شنبه 30 آذر 1393, 08:50 صبح
سلام
دقت کنید شاید اسم دیتابیس رو (مثلاً یه حرفش) رو اشتباه میزنید.
بعد بهتره به جای توابع mysql از توابع mysqli استفاده کنید که امنیت و سرعت بالاتری داره.
برای انتخاب دیتابیس هم توی همون تابع اتصال یعنی mysqli_connect هم می تونید با اضافه کردن یه پارامتر دیگه دیتابیس رو انتخاب کنید مثل این:



mysqli_connect("localhost","dbuser","dbpass","dbname");
if(!mysqli_connect_error()){
echo 'OK';
}else{
echo 'Error';
}

hamed_naghdi
دوشنبه 01 دی 1393, 19:09 عصر
سلام دوست عزیز. نه مشکل اینا نبود. یک اشتباه ساده بود که چون خیلی وقت بود با php کار نکرده بودم یادم رفته بود. اون رو تو سایت http://stackoverflow.com/questions/27585017/php-can-not-select-database-that-created-by-user-or-phpmyadmin مطرح کردم و مشکلم حل شد. باید به یوزر اجازه‌ی دسترسی به دیتابیس رو می‌دادم. همین.