не удается подключиться к msql, локальному хосту?

я не могу запустить этот код под локальным хостом, моя цель - создать таблицу, которая должна отображаться на веб-сайте, но когда я пытаюсь подключиться, я получаю сообщение об ошибке:

Предупреждение: mysql_connect(): в C:\xampp\htdocs\PhpProject2\hent.php в строке 5 невозможно подключиться

my site name: http://localhost/PhpProject2/hent.php

код:

<html>
<body>
<?php 

mysql_connect('<server is here>','<my username here>','<password here>') 
or die('can not connect' );
mysql_select_db('<my username here>') or die ('can not connect to <username here>');  

$sql = "Select * from Customer";
$result = mysql_query($sql);
$number= mysql_num_rows($result);

for($i=0; $i < $number; $i++)
{
    $table = mysql_fetch_row($result);
    echo  $table[0], $table[1];
    echo '<br>';
}
?>
    </body>
</html> 

я использую xampp, а MySQL работает на порту 3306:]

вместо моего ‹ имя пользователя здесь >, ‹ сервер здесь >, ‹ пароль здесь > реальный код :]

я был бы признателен за любой ответ:]


person Madde    schedule 22.01.2013    source источник
comment
Если это новый код, начните с использования MYSQLI_ вместо MYSQL. MYSQL будет обесцениваться, начиная с PHP 5.5.   -  person Mr. Radical    schedule 22.01.2013
comment
Используете ли вы правильную комбинацию localhost, имени пользователя и пароля? Все должно быть в , например, localhost, root и если вы используете настройки по умолчанию.   -  person Mr. Radical    schedule 22.01.2013
comment
вы имеете в виду вместо og ''?   -  person Madde    schedule 22.01.2013
comment
Вы пробовали командную строку? В панели управления XAMPP выберите SHELL. Введите в командной строке mysql -h имя хоста -u имя пользователя -p. Далее дайте вам пароль.   -  person Mr. Radical    schedule 22.01.2013
comment
В кавычках знаки. Вы также можете использовать одинарные кавычки.   -  person Mr. Radical    schedule 22.01.2013
comment
я вошел в систему сейчас, что-то особенное, что я могу сделать там? :]   -  person Madde    schedule 22.01.2013
comment
Подключиться к базе данных с помощью connect имя_базы_данных. Вы можете делать все с помощью командной строки, как и в PHP. Я попросил вас сделать это, потому что мне нужно было проверить, не используете ли вы неправильную комбинацию хоста, имени пользователя, пароля и базы данных.   -  person Mr. Radical    schedule 22.01.2013
comment
Кажется, я не могу подключиться, не уверен, что на самом деле использую правильное имя, я новичок в этом:]   -  person Madde    schedule 22.01.2013
comment
Удалось ли вам войти в систему с помощью mysql -h hostname -u username -p? И не удается подключиться к вашей базе данных?   -  person Mr. Radical    schedule 22.01.2013
comment
я смог войти с помощью msql -h имя хоста -u имя пользователя -p:], я попробовал еще раз сейчас, похоже, это больше не работает   -  person Madde    schedule 22.01.2013
comment
Не могли бы вы попробовать это: в панели управления выберите кнопку администратора после mysql, это вторая кнопка администратора сверху. Далее вы получите экран входа в phpmyadmin. Введите имя пользователя и пароль. Затем вы получите список баз данных с левой стороны. КСТАТИ. Вы вводили данные в базу данных через эту программу?   -  person Mr. Radical    schedule 22.01.2013
comment
Сначала попробуйте phpmyadmin, см. мой комментарий выше. Если это не сработает, воспользуйтесь следующим предложением. Вы закрыли окно командной строки перед входом в систему? Думаю, нет, поэтому вы, вероятно, все еще вошли в систему. В этом случае повторный вход в систему не работает. Чтобы убедиться, закройте окно командной строки и откройте новый экземпляр через панель управления. Если вы смогли войти один раз, вы сможете войти снова.   -  person Mr. Radical    schedule 22.01.2013
comment
о, да, я их вижу:], я обычно использовал msyql workbench и шпатлевку:] я изменил имя базы данных и попытался запустить то, что вы сказали, но проблема все еще та же:/   -  person Madde    schedule 22.01.2013
comment
Я также использую MySQL workbench и шпатлевку, так что с этим все в порядке. В workbench найдите имя базы данных, которую вы используете.   -  person Mr. Radical    schedule 22.01.2013
comment
это называется тест, ха-ха :D   -  person Madde    schedule 22.01.2013
comment
это не сработало, нет, но проблема скорее в том, что хост нестабилен, я думаю, так как он немного работал в школе:] я принял ваш ответ: D   -  person Madde    schedule 22.01.2013
comment
Я не понимаю, почему хост будет нестабильным. Я должен либо работать, либо вообще не работать. Вы используете тот же ноутбук с установленным на нем xampp, пока вы в школе. Если вы убедитесь, что запускаете сервер Apache и MySQL через панель управления, или если вы установили сервер, проверьте через панель управления, работает ли он. Чтобы проверить, все ли работает, вы также можете запустить ту же процедуру, что и в предыдущем посте, в отношении netstat. stackoverflow.com/questions/14245474/apache-wont-run -в xampp   -  person Mr. Radical    schedule 22.01.2013


Ответы (4)


Попробуй это:

<?php
  $host = "hostname";
  $user = "username";
  $password = "password";
  $database = "database";

  $link = mysqli_connect($host, $user, $password, $database);
  If (!$link){
      echo ("Unable to connect to database!");
  }
  else {
  $query = "SELECT * FROM Customer";    
  $result = mysqli_query($link,$query);

  while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)){
   echo  $row['<insert column name>']. "<br>";
  }
}
mysqli_close($link);
?>

Я использовал библиотеку MYSQL в этом коде. Вы должны проверить, называется ли ваш столбец в mysql 0 и 1. B.T.W. Я использую WHILE вместо цикла FOR, это просто личное предпочтение.

person Mr. Radical    schedule 22.01.2013
comment
Можно ли узнать, какую базу данных я использую? :] - person Madde; 22.01.2013
comment
В командной строке введите SHOW DATABASES; База данных по умолчанию: information_schema, cdcol, mysql, performance_schema, phpmyadmin и webauth. Все остальные базы данных могут быть вашими. - person Mr. Radical; 22.01.2013
comment
@Madde, просто чтобы убедиться, что вы создали или добавили что-нибудь в базу данных, используя phpmyadmin / командную строку / и т. д. Потому что вам нужно поместить данные в базу данных, чтобы получить их ;-) - person Mr. Radical; 22.01.2013
comment
я ничего не вводил с помощью phpadmin нет, но я ввел данные в таблицу, если вы это имеете в виду? :] ex вставить в Customer VALUES(null, 'Hilda', 'Olsen', 'Hakedalsveien 1', '1482'); :) - person Madde; 22.01.2013
comment
@Madde phpMyAdmin — хорошо известная программа, сравнимая с MySQL Workbench. Однако MySQL Workbench имеет гораздо более мощный управляемый пользовательский интерфейс (GUI). phpMyAdmin находится между чистой командной строкой MySQL и более визуальной MySQL Workbench. Все три позволяют вставлять/выбирать/удалять/обновлять/и т.д. данные в базу данных. - person Mr. Radical; 22.01.2013

Вот что вы можете сделать, чтобы увидеть свою ошибку:

mysql_connect('<server is here>','<my username here>','<password here>') 
or die('Error: '.mysql_error() );

И постарайтесь воздержаться от использования всех функций, начинающихся с mysql_*. В настоящее время они обесцениваются.

Используйте mysqli или pdo

person Ibu    schedule 22.01.2013
comment
о, спасибо:] ошибка говорит об ошибке: попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или установленное соединение не удалось, потому что подключенный хост не ответил. - person Madde; 22.01.2013
comment
Можно ли вообще подключиться к mysql? проверьте свой хост - person Ibu; 22.01.2013
comment
если вы имеете в виду на xampp? :] он говорит, что MySQL работает на порту 3306, когда я пытаюсь запустить другие документы локально, он работает нормально - person Madde; 22.01.2013

Я бы посоветовал вам начать использовать PDO;

index.php

<?php 
require "dbc.php";

$getList = $db->getAllData(25);

foreach ($getList as $key=> $row) {
         echo $row['columnName'] .' key: '. $key;
    }
?>

dbc.php

<?php
class dbc {
public $dbserver = 'server';
public $dbusername = 'user';
public $dbpassword = 'pass';
public $dbname = 'db';

function openDb() {    
    try {
        $db = new PDO('mysql:host=' . $this->dbserver . ';dbname=' . $this->dbname . ';charset=utf8', '' . $this->dbusername . '', '' . $this->dbpassword . '');
    } catch (PDOException $e) {
        die("error, please try again " . $e);
    }        
    return $db;
}

function getAllData($qty) {
    //prepared query to prevent SQL injections
    $query = "Select * from Customer where zip= ?";
    $stmt = $this->openDb()->prepare($query);
    $stmt->bindValue(1, $qty, PDO::PARAM_INT);
    $stmt->execute();
    $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
    return $rows;
}    
?>
person Andrew    schedule 22.01.2013

Вот как я обычно подключаюсь к базе данных MySQL. У меня есть config.php

<?php

function db_connect(){
   $conn = new mysqli('localhost', 'root', 'leave_black_if_no_password_set', 'database_name');
   if (!$conn) {
      return false;
   }
   $conn->autocommit(TRUE);  
    return $conn;

}

?>

//конец конфигурации

Теперь в другом файле просто вызовите config.php: `include 'config.php';

    <html>
    <body>
    <?php 
    include 'php/config.php';
    $dbCon = db_connect();


    $sql = "Select * from Customer";
    $result = mysqli_query($dbCon, $sql);
    $number= mysqli_num_rows($result);

   while($row=mysqli_fetch_array($result)){
    {
        echo  $row['column_name'];
        echo '<br>';
    }
//close conn
 mysqli_close($dbCon);
    ?>
        </body>
    </html> 
person user1965451    schedule 22.01.2013