2013-11-19 3 views
0

Я работаю над назначением, которое требует, чтобы я создал форму, которая отправляет информацию в базу данных. У меня возникают проблемы с подключением к серверу.Ошибка подключения к MYSQL с использованием PHP

Я пробовал использовать mysql_connect и mysqli_connect и не работал.

mysql_connect ошибка: Предупреждение: mysql_connect(): Тайм-аут соединения

ошибку mysqli_connect: Фатальная ошибка: Вызов неопределенной функции mysqli_connect()

    $connect=mysql_connect("server.com","username","password","database") 
        or die("Failed to connect to server"); 
        mysql_query("INSERT INTO client (title,fname,lname,organization,email,phone,tshirt) VALUES ($title,$fname,$lname,$org,$email,$phone,$tshirt)"); 

        $tabledata = mysql_query("SELECT * FROM client"); 
        echo "<table> 
        <tr> 
        <th>Title</th> 
        <th>First Name</th> 
        <th>Last Name</th> 
        <th>Organization</th> 
        <th>Email</th> 
        <th>Phone</th> 
        <th>TShirt</th> 
        </tr>"; 
        while($row = mysql_fetch_array($tabledata)){ 
          echo "<tr>"; 
          echo "<td>" . $row['title'] . "</td>"; 
          echo "<td>" . $row['fname'] . "</td>"; 
          echo "<td>" . $row['lname'] . "</td>"; 
          echo "<td>" . $row['org'] . "</td>"; 
          echo "<td>" . $row['email'] . "</td>"; 
          echo "<td>" . $row['phone'] . "</td>"; 
          echo "<td>" . $row['tshirt'] . "</td>"; 
          echo "</tr>"; 
        } 
        echo "</table>"; 
        mysql_close($connect); 

Информация от PHP INFO

mysql

Поддержка MySQL включена Закон ив Persistent Links 0 активных ссылок 0 Client версия API mysqlnd 5.0.10 - 20111026 - $ Id: e707c415db32080b3752b232487a435ee0372157 $

PDO

поддержка

PDO включен драйвера PDO SQLite

Pdo_Sqlite

PDO Драйвер для SQLite 3.x включен SQLite Library 3.7.7.1

sqlite3

поддержка

SQLite3 включен SQLite3 модуль версии 0.7 SQLite библиотека 3.7.7.1

Директива Local Value Master Value sqlite3.extension_dir никакого значения нет значения

+0

является 'MySQL 'работает? – mehdi

+0

Требуется ли использовать испорченный старый интерфейс mysql_query? – tadman

ответ

0

пожалуйста используйте PDO::__construct() или mysqli_connect, но в ваш вопрос

try:

$connect=mysql_connect("server.com","username","password"); 
mysql_select_db("database"); 
+0

Same issue ... connection timeout – PhillToronto

+0

is mysql работает правильно? – mehdi

1

Во-первых, убедитесь, что MySQL работает, а если она уже есть, то я бы попытаться установить расширение MySQL для вашего PHP среды так или иначе, просто чтобы убедиться:

sudo apt-get install php5-mysql libapache2-mod-auth-mysql 

Кроме того, вы хотите использовать mysqli_*, а не mysql_*

После того, как вы попытаетесь установить, просто перезапустите apache.

+0

У меня нет прав администратора на этом сервере. Я на 99% уверен, что он уже установлен. – PhillToronto

+0

Я получил эту ошибку: Программа «apt-get» находится в следующем пакете: * apt [путь:/usr/bin/apt-get, репозиторий: zypp (openSUSE_11.1-0)] Я не мог найти apt-get, хотя – PhillToronto

+0

У меня была одна и та же проблема примерно год назад, и это было исправлено. Посмотрите, можете ли вы получить кого-то с правами root/sudo для запуска этого. EDIT: Что это за дистрибутив? – Rogue

0

Во-первых, вы подключаетесь локально или внешне к своей БД? Если вы подключаетесь локально ваши параметры mysql_connect(); будет выглядеть следующим образом mysql_connect('localhost', 'username', 'password');

Тогда:

mysql_select_db('your_db') 
+0

Учитывая это не убивает соединение из-за неправильной информации (а вместо этого неопределенной функции), я бы сказал, что это другая проблема. – Rogue

+0

Если он подключается извне, что может быть проблемой, с которой он сталкивается, ему нужно будет проверить, разрешает ли его сайт внешний IP-адрес – Zy0n

+0

'mysql_connect' просто возвращает false при ошибке, он не волшебным образом не определяет себя ... – Rogue

0

Является ли «сервер.ком»это реальная вещь, которую вы пытаетесь подключиться к Вы подключения к MySQL на локальной машине, или это внешний Попробуйте телнет с сервера PHP:?

telnet <remote db name/IP> 3306 

Если это не удается, у вас есть . проблемы с сетью/брандмауэр или БД не слушает этот порт или по сети полностью Сделайте NETSTAT на пульте DB для подтверждения:. Linux

netstat -an | grep LISTENING 

Вы должны увидеть: 3306, если он слушает на порт по умолчанию.

0

проверить, есть ли у вас en недееспособных mysqli.dll в PHP файле ини

с

<?php phpinfo(); ?>

, если она не позволит ему в файле php.ini //remove ';' из длл имени

для more info to check

Смежные вопросы