2014-09-05 106 views
0

我一直在試圖發現我的數據庫連接錯誤,我讀了幾個答案,建議確保密碼授予完全訪問權限......我檢查了所有問題仍然出現...沒有選擇數據庫PHP

我的問題是...我明白的mysqli在這種情況下更好的(從我讀),所以...... 如果我更換噸$ dbcon與

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

意志解決這個問題,如果它那麼,我該如何擺脫永無止境的 mysqli_error期望只有1個參數,0給定...呃ROR

我的PHP是

<?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 2014-09-05 22:22:34

+0

我不明白,我如何將數據庫句柄傳遞給函數?和哪個功能? – Azizi 2014-09-05 22:27:50

+0

你的問題不清楚。你的代碼使用'mysql_connect',但你會問'mysqli_connect'。你是否將代碼從'mysql'轉換爲'mysqli',並詢問如何去做?或者只是問如何解決'mysql'代碼中的問題? – Barmar 2014-09-05 22:30:01

回答

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 = MISTAKE(第四個參數必須是布爾值,你可以看到。)有一個函數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 2014-09-05 22:47:43

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()); 

希望有幫助!