已回答 嗯,這很有趣。基本上它不需要做我認爲的事情。事實證明,我的數據庫中的id字段以某種方式搞砸了,並且每次嘗試插入新行時都試圖輸入第二個數字0主鍵。所以我刪除了id列並重新創建它,確保將其標記爲自動遞增,並且不在其中輸入任何數據,以便它可以自動遞增而不會中斷。現在它似乎工作正常facepalm無法將表單數據插入數據庫
感謝大家給它一個重擊!
已更新 因此,該通知的問題得到了解決。現在的問題是,我仍然堅持一個空白的屏幕,我沒有任何信息真正進入我的數據庫。我沒有任何可以看到或想到的錯誤,但它不會將任何內容插入到數據庫中。每個人都告訴我,我應該做POD或其他什麼,但我沒有時間從頭開始。如果任何人都可以想到任何可能導致白屏的事情,我已經做了很多改變,我會弄溼自己XD
我已經更新了我的代碼,以我目前正在運行。有任何想法嗎?我在我的繩子T.T
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
$hostname = "myHostName";
$username = "PreRegCustomers";
$dbname = "PreRegCustomers";
$password = "myPassword";
$usertable = "CustomerInfo";
//connect to mysql
$link_id = mysql_connect($hostname, $username, $password);
if (!$link_id) {
die("Unable to connect to database! Please try again later. error:".mysql_errno());
}
//make sure DB exists
if (!mysql_select_db($dbname)) die ("Connected to mysql but could not connect to the DB. error:".mysql_errno());
//avoid sql_injection
$firstName = mysql_real_escape_string($_POST['firstName']);
$lastName = mysql_real_escape_string($_POST['lastName']);
$streetAddress = mysql_real_escape_string($_POST['streetAddress']);
$city = mysql_real_escape_string($_POST['city']);
$state = mysql_real_escape_string($_POST['state']);
$zip = mysql_real_escape_string($_POST['zip']);
$country = mysql_real_escape_string($_POST['country']);
$email = mysql_real_escape_string($_POST['email']);
$phone = mysql_real_escape_string($_POST['phone']);
$badgeName = mysql_real_escape_string($_POST['badgeName']);
//write the query
$sql = "INSERT INTO $usertable
(firstName, lastName, streetAddress, city, state, zip, country, email, phone, badgeName)
VALUES ('$firstName', '$lastName', '$streetAddress', '$city', '$state', '$zip', '$country', '$email', '$phone', '$badgeName')";
//execute the query
mysql_query($sql);
?>
的原貼底:
所以我很新的PHP。現在就像2天,我試圖讓我的Web表單將數據插入與爸爸託管的MySQL數據庫。我嘗試了一堆不同的東西,我知道php已啓用並正在工作,我有一個DNS,我已經得到了死亡的白色屏幕,但在對代碼進行了一些更改之後,我剛剛收到一條提示:
注意:未定義指數:上線26
現在據我知道國家/home/content/85/11323785/html/devTest/insert2.php,我應該能夠忽略通知,但它仍然沒有將任何內容插入到我的數據庫中。我只是在地址欄中輸入我的.php
文件,並獲得一個空白白屏。
任何幫助將是恆星!我的代碼如下。
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
$hostname = "myHostName";
$username = "PreRegCustomers";
$dbname = "PreRegCustomers";
$password = "myPassword";
$usertable = "CustomerInfo";
//connect to mysql
$link_id = mysql_connect($hostname, $username, $password);
if (!$link_id) {
die("Unable to connect to database! Please try again later. error:".mysql_errno());
}
//make sure DB exists
if (!mysql_select_db($dbname)) die ("Connected to mysql but could not connect to the DB. error:".mysql_errno());
//avoid sql_injection
$firstName = mysql_real_escape_string($_POST['firstName']);
$lastName = mysql_real_escape_string($_POST['lastName']);
$streetAddress = mysql_real_escape_string($_POST['streetAddress']);
$city = mysql_real_escape_string($_POST['city']);
$state = mysql_real_escape_string($_POST['state']);
$zip = mysql_real_escape_string($_POST['zip']);
$country = mysql_real_escape_string($_POST['country']);
$email = mysql_real_escape_string($_POST['email']);
$phone = mysql_real_escape_string($_POST['phone']);
$badgeName = mysql_real_escape_string($_POST['badgeName']);
//write the query
$sql = "INSERT INTO $usertable
(firstName, lastName, streetAddress, city, state, zip, country, email, phone, badgeName)
VALUES ('$firstName', '$lastName', '$streetAddress', '$city', '$state', '$zip', '$country', '$email', '$phone', '$badgeName')";
//execute the query
mysql_query($sql);
?>
第一:不要在新代碼中使用mysql_'函數!它已被棄用,請使用'mysqli_'或PDO。準備好的語句(你應該看看的東西)也可以減輕你想要在查詢中使用的每個變量的消毒過程。 – TheWolf
這意味着'$ _POST ['country']'爲空。即它不是從FORM發送的。檢查你的HTML FORM是否具有''或'
數據庫錯誤不會提醒您。對於mysql_ *,必須在mysql_query()之後使用mysql_error()來查找數據庫錯誤。但是你應該真的使用mysqli代替。這並不難。 – miyasudokoro