簡體   English   中英

PHP Mysql查詢,沒有錯誤,不會插入行

[英]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')

數據庫結構:

http://imgur.com/iQHRk.jpg

讓我們看一下,您的數據庫連接句柄顯然是由$ 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM