2014-09-05 109 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()); 

希望有帮助!