繁体   English   中英

无法连接到数据库?

[英]Unable to connect to the database?

这是我下面的php代码。 出于某种原因,当我希望它连接到数据库时,它会显示“没有选择数据库”,但是当我进行连接测试时,它会显示“数据库连接成功!” 因此,下面的代码中存在错误。 另外我认为它可能会干扰我的形式,所以我必须输错字; 当我删除PHP时,表单正常运行,但我希望它连接到数据库。

<?php
// let's initialize vars to be printed to page in the HTML section so our script does not return errors 
// they must be initialized in some server environments, not shown in video
$errorMsg = "";
$First_Name = "";
$Last_Name = "";
$Email = "";
$Password = "";


// This code runs only if the form submit button is pressed
if (isset ($_POST['firstname'])){

    /* Example of cleaning variables in a loop
    $vars = "";
    foreach ($_POST as $key => $value) {
       $value = stripslashes($value);
       $vars .= "$key = $value<br />";
    }
    print "$vars";
    exit();
    */
     $First_Name = $_POST['firstname'];
     $Last_Name = $_POST['lastname'];
     $Email = $_POST['email'];
     $Password = $_POST['password'];

     // Connect to database
     include "connect_to_mysql.php";
     $emailCHecker = mysql_real_escape_string($Email);
     $emailCHecker = eregi_replace("`", "", $EmailCHecker);
     // Database duplicate e-mail check setup for use below in the error handling if else conditionals
     $sql_email_check = mysql_query("SELECT email FROM members WHERE email='$emailCHecker'");
     $email_check = mysql_num_rows($sql_email_check); 

}

     $sql = mysql_query("INSERT INTO members (firstname, lastname, email, password, sign_up_date) 
     VALUES('$First_Name','$Last_Name','$Email','$Password', now())")  
     or die (mysql_error());

     $id = mysql_insert_id();

     // Create directory(folder) to hold each user's files(pics, MP3s, etc.)        
     mkdir("members/$id", 0755);    

?>

这是我在下面的表格编码

    <form action="index.php" method="post" enctype="multipart/form-data">
  <tr>
    <td width="23%" class="right">First Name:</td>
    <td width="77%" class="left left_nowrap"><input type="text" class="left left_nowrap tb10" id="First_Name" value="<?php print "$First_Name"; ?>"/></td>
  </tr>
  <tr>
    <td class="right">Last Name:</td>
    <td class="left left_nowrap"><input type="text" class="left left_nowrap tb10" id="Last_Name"  value="<?php print "$Last_Name"; ?>" />
    </td>
  </tr>
  <tr>
    <td class="right">Email:</td>
    <td class="left left_nowrap"><input type="text" class="left left_nowrap tb10" id="Email" value="<?php print "$Email";?>" /></td>
  </tr>
  <tr>
    <td class="right">Password:</td>
    <td class="left left_nowrap"><input type="password" class="left left_nowrap tb10" id="Password"/></td>
  </tr>
  <tr>
    <td class="right">Confirm Password:</td>
    <td class="left left_nowrap"><input type="password" class="left left_nowrap tb10" id="Confirm_Password"/></td>
  </tr>
  <tr>
    <td class="right">Gender:</td>
    <td class="left left_nowrap"><span class="right">
      <select name="Gender" class="large tb10" id="Gender" value="<?php print "$gender"; ?>">
        <option value="Please Select...">Please Select...</option>
        <option value="Male">Male</option>
        <option value="Female">Female</option>
      </select>
    </span></td>
  </tr>
  <tr>
    <td class="right">&nbsp;</td>
    <td class="left"><input type="submit" class="submit tb10" value="Sign-UP" /></td>
  </tr>     
    </form>

connect_to_mysql.php

 <?php 

/* 
1: "die()" will exit the script and show an error statement if something goes wrong with the "connect" or "select" functions. 
2: A "mysql_connect()" error usually means your username/password are wrong 
3: A "mysql_select_db()" error usually means the database does not exist.
*/
// Place db host name. Sometimes "localhost" but 
// sometimes looks like this: >>      ???mysql??.someserver.net
$db_host = "localhost";
// Place the username for the MySQL database here
$db_username = "Shayaa"; 
// Place the password for the MySQL database here
$db_pass = "nestle324"; 
// Place the name for the MySQL database here
$db_name = "social_media";

// Run the actual connection here 
$con = mysql_connect("$db_host","$db_username","$db_pass") or die ("could not connect to mysql");
mysql_select_db('social_media', $con ) or die ("no database");         
?>

MySQL服务器可以处理许多数据库。 至少你将拥有mysql数据库本身,它拥有服务器特定的数据,如用户帐户和你自己的应用程序数据库。

因此,仅仅连接到服务器对于与数据库相关的任何查询都是不够的。 您必须选择一个数据库。

在您的情况下,在不修改其余代码和MySQL API之前,您需要先使用此命令,然后才能提交查询

mysql_select_db( 'your database name', $dbConnection );

http://php.net/manual/en/function.mysql-select-db.php

建议不要使用PHP的MySQL扩展,因为将来的PHP版本将删除它。 请参阅上面的链接了解替代方案

  • 使用mysqli或PDO
  • 看看你是否在没有选择数据库时选择数据库$sql = mysql_select_db('your database name', $connection)

  • stristr达到完全相同的结果为eregi_replace (至少,当你不使用正则表达式):

编辑:

         $sql= "INSERT INTO members (firstname, lastname, email, password,bio_body, sign_up_date , account_type) 
 VALUES(  '".$_SESSION['firstname']."','".$_SESSION['lastname']."','".$_SESSION['email']."','".$_SESSION['password']."','NULL' ,NOW() , 'a' ) " ; 

 if (!mysql_query($sql))
{
 die('Error: ' . mysql_error());
}
echo "1 record added";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM