回答 これは興味深いですね。基本的に、私が思っていたこととは関係ありませんでした。私のデータベースの id フィールドが何らかの形で台無しになっていて、新しい行を挿入しようとするたびに 2 番目の番号 0 の主キーを入力しようとしていたことが判明しました。そのため、id 列を削除して再作成し、自動インクリメントとしてマークし、そこにデータを入力しないようにして、中断することなく自動インクリメントできるようにしました。今では問題なく動作しているようです
でも、それを与えてくれたみんなに感謝します!
更新 されたので、通知の問題は処理されます。現在の問題は、まだ空白の白い画面で立ち往生しており、データベースに実際に情報が入力されていないことです。見たり考えたりできるエラーはありませんが、データベースに何も挿入していません。PODか何かで動くべきだとみんなに言われましたが、ゼロから始める時間がありません。無数の変更を行った後、白い画面を引き起こしている可能性のある何かを誰かが考えることができれば、私は自分自身を濡らします XD
コードを現在実行しているものに更新しました。何か案は?私はロープの終わりにいます TT
<?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 フォームを使用して、go daddy でホストされている MySQL データベースにデータを挿入しようとしています。私はさまざまなことを試しました.PHPが有効で動作していることはわかっています.DNSを持っています.死の白い画面が表示されていましたが、コードをいくつか変更した後、次のような通知が表示されました.
注意: 未定義のインデックス: 国 /home/content/85/11323785/html/devTest/insert2.php の 26 行目
私の知る限り、データベースにまだ何も挿入されていないことを除いて、通知を無視できるはずです。.php
アドレスバーにファイルが表示された空白の白い画面と、 1 つの通知が表示されます。
どんな助けも素晴らしいでしょう!私のコードは次のとおりです。
<?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);
?>