2013-10-08 2 views
-1

Ну, это интересно. В принципе, это не было связано с тем, что я думал. оказывается, что поле id в моей базе данных было каким-то образом ввернуто, и он пытался ввести второй первичный ключ номер 0 каждый раз, когда я пытался вставить новую строку. Таким образом, я удалил столбец идентификаторов и воссоздал его, следя за тем, чтобы он отмечал его как автоматическое приращение, а также не вводил никаких данных там, чтобы он мог автоматически увеличиваться без прерывания. Min.90, Гоооооол !!!! получил желтую карточку за предмет и вышел на поле. ,Не удается ввести данные формы в базу данных

ОБНОВЛЕНО Так что вопрос с уведомлением позаботился. Проблема прямо сейчас в том, что я все еще застрял с пустым белым экраном, и у меня нет никакой информации, фактически попадающей в мою базу данных. У меня нет ошибок, которые я могу видеть или думать, но это просто не вставляет ничего в базу данных. Все сказали мне, что я должен двигаться, делать 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 дня, и я пытаюсь получить свою веб-форму для вставки данных в базу данных MySQL, размещенную с go daddy. Я пробовал кучу разных вещей, я знаю, что php включен и работает, у меня есть DNS, я получаю белый экран смерти, но после некоторых изменений в моем кодексе я просто получаю уведомление, в котором говорится:

Примечание: Не определено индекс: страна в /home/content/85/11323785/html/devTest/insert2.php на линии 26

Сейчас, насколько я знаю, я должен быть в состоянии игнорируйте уведомление, за исключением того, что он все еще не вставляет ничего в мою базу данных. Я просто получаю пустой белый экран с моим .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); 
?> 
+0

Первый: не используйте функции 'mysql_' в новом коде! Он устарел, вместо этого используйте mysqli_ или PDO. Подготовленные заявления (вещь, на которую вы должны обратить внимание) также избавляют вас от боли, вызванной дезинфекцией каждой переменной, которую вы хотите использовать в запросе. – TheWolf

+3

Это означает, что '$ _POST ['country']' пуст. то есть он не отправляется из ФОРМЫ. Убедитесь, что в вашей ФОРМЕ HTML есть '' или '