2013-10-08 51 views
-1

已回答 嗯,这很有趣。基本上它不需要做我认为的事情。事实证明,我的数据库中的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); 
?> 
+0

第一:不要在新代码中使用mysql_'函数!它已被弃用,请使用'mysqli_'或PDO。准备好的语句(你应该看看的东西)也可以减轻你想要在查询中使用的每个变量的消毒过程。 – TheWolf

+3

这意味着'$ _POST ['country']'为空。即它不是从FORM发送的。检查你的HTML FORM是否具有''或'