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