[英]PHP Mysql query, No Error, Wont Insert Row
表格提交正確,並給我發送了一封電子郵件。 沒有錯誤報告,它創建的SQL正常運行,我在phpMyAdmin上對其進行了測試。 mysql_error()不產生任何結果,只是不添加一行。 誰能看到發生了什么事?
<?PHP
$to = "me@gmail.com";
$subject = "New Lead";
$date = date ("l, F jS, Y");
$time = date ("h:i A");
$mysql = mysql_connect("db.perfora.net:3306","db","password");
if(!$mysql)
{
die("Could Not Connect: ".mysql_error());
}
mysql_select_db("db",$mysql);
if ($_SERVER['REQUEST_METHOD'] == "POST") {
$name = $_POST['firstname']." ".$_POST['lastname'];
$email = $_POST['email'];
$phone = "(".$_POST['areacode'].") ".$_POST['firstthree']."-".$_POST['lastfour'];
$area = $_POST['area'];
$lookdate = $_POST['lmm']."/".$_POST['ldd']."/".$_POST['lyyyy'];
$lookdatedb = date("{$_POST['lmm']}.{$_POST['ldd']}.{$_POST['lyyyy']}");
$movedate = $_POST['mmm']."/".$_POST['mdd']."/".$_POST['myyyy'];
$movedatedb = date("{$_POST['mmm']}.{$_POST['mdd']}.{$_POST['myyyy']}");
$loft = $_POST['loft'] ? "loft" : "";
$highrise = $_POST['highrise'] ? "highrise" : "";
$traditional = $_POST['traditional'] ? "traditional" : "";
$price = $_POST['price'];
$comments = $_POST['comments'];
$sql = "INSERT INTO Leads
(Name, Email, Phone, Area, LookDate, MoveDate, Loft, HighRise, Traditional, Price, Comments)
VALUES
('$name', '$email', '$phone', '$area', '$lookdatedb', '$movedatedb', '{$_POST['loft']}', '{$_POST['highrise']}', '{$_POST['traditional']}', '$price', '$comments')";
if (mysql_query($sql,$con))
{
echo "Row added.";
}
else
{
echo "Error adding row: " . mysql_error();
echo("\n\n".$sql);
}
$msg = "
New Lead Submitted On $date at $time.\n\n
Name: $name\n
Email: $email\n
Phone: $phone\n
Area: $area\n
Look Date: $lookdate\n
Move Date: $movedate\n
Type: $loft $highrise $traditional \n
Price: $price\n
Comments: $comments\n
";
}
mysql_close($mysql);
mail($to, $subject, $msg, "From:$email");
if ($forward == 1) {
header ("Location:$location");
}
else {
echo "Thank you for submitting our form. We will get back to you as soon as possible.";
}
?>
響應:
感謝您提交我們的表格。 我們將盡快與您聯系。
生成的SQL:
INSERT INTO Leads (Name, Email, Phone, Area, LookDate, MoveDate, Loft, HighRise, Traditional, Price, Comments) VALUES ('work work', 'work@work.com', '(214) 131-4131', 'dallas', '02.18.2010', '02.25.2010', '', '1', '1', '$333333333333333333', '33fdsdfsdfsd')
數據庫結構:
讓我們看一下,您的數據庫連接句柄顯然是由$ mysql引用的,但是您已經這樣做了:
if (mysql_query($sql,$con))
您的數據庫處理程序錯誤。
mysql_query($sql,$con);
應該返回一些東西,為什么你不看看那個
即
$result = mysql_query('SELECT * WHERE 1=1');
if (!$result) {
die('Invalid query: ' . mysql_error());
}
最好的方法是在可能的情況下檢查錯誤。
還要注意的是,您沒有轉義任何用戶輸入,因此您的代碼容易受到SQL注入的攻擊。 請使用mysql_real_escape_string 。
將post變量放在另一個變量中,然后傳遞給insert查詢,我認為它將像這樣工作
$ sql =“在線索中插入(名稱,電子郵件,電話,區域,LookDate,MoveDate,閣樓,HighRise,傳統,價格,評論)值('$ name','$ email','$ phone','$ area ','$ lookdatedb','$ movedatedb','$ loft','$ highrise','$ traditional','$ price','$ comments')”;
的mysql_query($的SQL);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.