Я начинающий .
Я скопировал простую страницу PHP на веб-сервере http://www.barman-team.ir/tt.php
и я импортирую базу данных SQL и сделать пользователя & и передать на базу данных (в cpanel)
эта страница работает на локальном хосте (xamp), но не запускается на сервере
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body dir="rtl">
<?php
$link=mysql_connect("localhost","uname","pass");
mysql_select_db("barmante_ebram",$link);
$q="SELECT * FROM site_sug";//
$r=mysql_query($q,$link);
$line= mysql_fetch_array($r);
//while($line== $result->fetch_assoc()){
echo $line['site_suggestion_id'].$line['site_suggestion']."<br>";
//echo $row["site_suggestion_id"].$row["site_suggestion_name"].$row["site_suggestion_date"].$row["site_suggestion"]."<br>";
//}
?>
</body>
</html>
журнал ошибок:
Warning: mysql_connect(): Access denied for user 'barmante_ebram_u'@'localhost' (using password: YES) in /home/barmante/public_html/tt.php on line 11
Warning: mysql_select_db() expects parameter 2 to be resource, boolean given in /home/barmante/public_html/tt.php on line 12
Warning: mysql_query() expects parameter 2 to be resource, boolean given in /home/barmante/public_html/tt.php on line 14
Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in /home/barmante/public_html/tt.php on line 15
Используйте этот вид отладки для отслеживания ошибок.
Я предполагаю, что все ваши предупреждения связаны с ИМЯ ПОЛЬЗОВАТЕЛЯ или ПАРОЛЯ. используйте правильное имя пользователя и пароль. и это решит проблему.
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Not connected : ' . mysql_error());
}
// make foo the current db
$db_selected = mysql_select_db('foo', $link);
if (!$db_selected) {
die ('Can\'t use foo : ' . mysql_error());
}
Используйте mysql_error () с каждым запросом, чтобы вы узнали, что является причиной проблемы (полезно для начинающих)
Первая ошибка говорит о том, что ваш пароль к имени пользователя, который вы указали, означает, что он не может подключиться к вашему mysql, а другая ошибка говорит о том, что вы должны предоставить ресурс для второго параметра. Вы просто поменяли последовательность параметров. Используйте код ниже
<?php
$link=mysql_connect("localhost","uname","pass");
mysql_select_db($link,"barmante_ebram");
$q="SELECT * FROM site_sug";//
$r=mysql_query($link);
$line= mysql_fetch_array($r);
//while($line== $result->fetch_assoc()){
echo $line['site_suggestion_id'].$line['site_suggestion']."<br>";
//echo $row["site_suggestion_id"].$row["site_suggestion_name"].$row["site_suggestion_date"].$row["site_suggestion"]."<br>";
//}
?>
Примечание *: не используйте функции mysql_ *, это устарело. Использовать подготовленные операторы mysqli или PDO
Надеюсь, это поможет вам
Предполагая, что у вас есть правильные разрешения для пользователя, следующий код должен работать. Он сообщит вам, есть ли у вас ошибка при подключении к серверу sql, или есть какая-либо ошибка в вашем запросе.
<?php
$db_hostname = 'localhost';
$db_database = 'barmante_ebram';
$db_username = 'uname';
$db_password = 'pass';
$db_link= new MySQLi($db_hostname, $db_username, $db_password, $db_database);
if(! $db_link) //if($db_link->connect_errno > 0)
die("Could not connect to database server\n" + $db_link->connect_error);
$query = "SELECT * FROM site_sug";
$result = $db_link->query($query);
if(!result)
die("Error in query".$db_link->error);
$row = $result->fetch_assoc();
echo $row['site_suggestion_id'].$line['site_suggestion'];
?>
ЗаметкаПожалуйста, всегда выполняйте проверку ошибок (если (! Успешно) die («»)). Ваш код не имеет никакого. Это хорошая практика для подражания.