[英]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"> </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版本將刪除它。 請參閱上面的鏈接了解替代方案
看看你是否在沒有選擇數據庫時選擇數據庫$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.