2014-09-05 6 views
0

Я пытался обнаружить ошибку в подключении к базе данных, я прочитал несколько ответов, предлагая убедиться, что полный доступ к паролю предоставляется ... Я проверил все, что проблема по-прежнему появляется ...Не выбрана база данных PHP

Мой вопрос ... Я понимаю MySQLi в этом случае лучше (от того, что я читал) так ... если я заменю мт $ dbcon с

$dbcon = mysqli_connect("$host","$username","$password","$db_name") ; 

воли решить эту проблему, и если он делает, как я могу избавиться от бесконечного mysqli_error ожидает ровно 1 параметр, 0 данный ... er ROR

Мой РНР

<?php 
     $host="****" ; 
     $username="****" ; 
     $password="****" ; 
     $db_name="****" ; 
     $tbl_name="courses" ; 
      $dbcon = mysql_connect("$host","$username","$password","$db_name") ;    

      if (!$dbcon) { 
      die('error connecting to database'); } 

      echo 'Courses successfully registerd , ' ; 

     // escape variables for security 
     $studentid = ($_GET['studentid']); 
     $fname = $_POST["name"]; //echo $studentid; 
    $query=mysql_query("select * from courses where studentid='".$studentid."' ") or die(mysql_error()); 
     $duplicate=mysql_num_rows($query); 
     if($duplicate==0) 
     { 
      $query1=mysql_query("insert into user values('".$studentid."')") or die(mysql_error()); 
     } 
     else 
     { 
      echo'The ID you entered '.$studentid.' already registered, please wait 24 hours until you can register again'; 
     } 

    // Get Cources 
    $name = $_GET['ckb']; 
    if(isset($_GET['ckb'])) 
    { 
    foreach ($name as $courcess){ 
    $cc=$cc. $courcess.','; 
    } 
    } 





    $sql="INSERT INTO courses (studentid, ckb, name) 
    VALUES ('$studentid', '$cc', $fname)"; 

    if (!mysql_query($dbcon,$sql)) { 
    die('Error: ' . mysqli_error($dbcon)); 
} 
echo " Thank you for using IME Virtual Registeration "; 
     mysql_close($dbcon); 
?> 
+2

Вам необходимо передать дескриптор базы данных функции, поэтому вам понадобится 'mysqli_error ($ dbcon)'. Вам также нужно будет изменить все ваши функции mysql_ для использования mysqli_ - они несовместимы. – andrewsi

+0

Я не понимаю, как передать дескриптор базы данных функции? и какая функция? – Azizi

+0

Ваш вопрос непонятен. В вашем коде используется 'mysql_connect', но тогда вы спрашиваете о' mysqli_connect'. Вы конвертируете свой код из 'mysql' в' mysqli' и спрашиваете, как это сделать? Или просто спрашиваете, как исправить проблему в коде 'mysql'? – Barmar

ответ

1

Проблема заключается в вашем PHP на линию 7. mysql_connect() имеет такие параметры:

mysql_connect(string $server, string $username, string $password, @optional bool $new_link = false, @optional int $client_flags = 0) 

Вы даете четвертый параметр $ db_name = ОШИБКУ (четвертый параметр должен быть булевыми как вы можете видеть .) Есть функция mysql_select_db(), чтобы указать PHP, какую базу данных вы используете. Так вот переделки вашей 7-й строки:

$dbcon = mysql_connect("$host","$username","$password"); 
mysql_select_db("$db_name"); 

, но я рекомендую вам использовать MySQLi или PDO -> они являются встроенными библиотеками PHP, так что вам не нужно ничего скачивать, и что более важно, они легко использовать. Удачи :)

+0

Стол '1662822_db1.user' не существует, теперь он ошибочно принимает мое имя db_name с моим именем таблицы "курсы" .. – Azizi

1

Хотя мы в основном с помощью интерфейса PDO теперь здесь код также используется для подключения к базе данных с некоторых простых сценариев командной строки:

$sql_link=mysql_connect ('host','user','password') or die('Cannot connect to the database because: ' . mysql_error()); 
if (!$sql_link) { 
    echo('Could not connect to database : ' . mysql_error()); 
    exit; 
} 
mysql_select_db('database_name') or die(mysql_error()); 

Надеюсь, что это поможет!

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