簡體   English   中英

有人知道為什么這種MYSQL INSERT無法正常工作嗎?

[英]Anyone know why this MYSQL INSERT doesn't work?

$con = mysql_connect("localhost","root","");
if (!$con) die('Could not connect: ' . mysql_error());
mysql_select_db("pilot", $con);

$sql = "INSERT INTO logs (id, userid, date, plane, from, to, blocksoff, takeoff,
landing, blockson, flighttime, traveltime, tachobefore, tachoafter, tacho, 
hobbsbefore, hobbsafter, hobbs, landings) VALUES ('$nfid', '$nfuserid', 
'$nfdate', '$nfplane', '$nffrom', '$nfto', '$nfblocksoff', '$nftakeoff', 
'$nflanding', '$nfblockson', '$nfflighttime', '$nftraveltime', '$nftachobefore', 
'$nftachoafter', '$nftacho', '$nfhobbsbefore', '$nfhobbsafter', '$nfhobbs',
'$nflandings')";

mysql_query($sql);

$ sql沒什么不對,似乎只是不會查詢.. :(

id|userid=int(11)  
date=date  
plane|from|to=text  
blocksoff|takeoff|landing|blockson=time  
flighttime|traveltime|tachobefore|tachoafter|tacho|hobbsbefore|hobbsafter|hobbs|landings=double

所有$變量都來自文本框(如果有的話)

可能某些列名稱是MySql保留字(尤其是fromto )。 請逃脫他們。

INSERT INTO logs (`id`, userid, date, plane, `from`, `to` ...)

您應該始終檢查錯誤:

$result = mysql_query($sql);
if (!$result) {
    die('Invalid query: ' . mysql_error());
}

有點開放式的問題。

您的任何變量都返回NULL值嗎? 如果您嘗試將NULL插入數據庫,並且數據庫列未設置為接受NULL值,則可能導致錯誤。

您需要查看查詢的實際作用。 如果文本框中有任何單引號或其他無效字符,則可能會使您感到困惑。

另外,為了您個人的進步,請查找PDO。 通過使用准備好的語句,它可以幫助您編寫更安全的查詢。 http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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