2012-12-25 116 views
0

这是我的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");   
?> 
+2

eregi_replace()不推荐使用http://php.net/manual/en/function.eregi-replace.php ....使用mysql_insert_id停止http://php.net/manual/en/ function.mysql-insert-id.php – swapnesh

+0

...这是抛出“无法连接到数据库?” – OpenSorceress

+3

[**请不要在新代码中使用'mysql_ *'函数**](http://bit.ly/phpmsql)。他们不再被维护[并被正式弃用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**红框**](http://j.mp/Te9zIL)?学习[*准备的语句*](http://j.mp/T9hLWi),并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [这篇文章](http://j.mp/QEx8IB)将帮助你决定哪个。如果你选择PDO,[这里是一个很好的教程](http://j.mp/PoWehJ)。 – ThiefMaster

回答

0
  • 使用库MySQLi或PDO的链接
  • 看,如果你选择DATABSE而你没有得到任何选择的数据库$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"; 
+0

现在检查我的编辑。 –

+0

非常感谢sooo goodmod –

2

MySQL服务器形式的编码可以处理许多数据库。至少你会拥有mysql数据库本身,其中包含服务器特定的数据,如用户帐户和您自己的应用程序数据库。

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

你的情况,而无需修改就需要利用这个命令之前,你可以提交一个查询

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

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

不建议使用PHP的MySQL扩展的代码和MySQL API的其余部分,因为这将在未来的PHP版本中被删除。见上面的替代品

+0

你可以编辑我的编码一个http://beta.primarypad.com/p/lCvHpCMgfL –

+1

这应该进入你的connect_to_mysql.php,自己尝试,这并不困难:) –

+1

+1鼓励OP自己试试':)' – halfer