2012-06-25 38 views
0
$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中,好像它只是不會查詢.. :(任何人都知道爲什麼這個MYSQL INSERT不起作用?

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 

所有的變量都來自一個文本框(如果它的事項)在$

+1

打印$ sql並粘貼在這裏! –

+1

嘗試回顯'$ sql'並手動運行它。還可以嘗試查詢'mysql_query($ sql);'到'mysql_query($ sql)或者死(mysql_error());' –

+1

P.S.不鼓勵使用'mysql_ *'。 http://www.php.net/manual/en/function.mysql-query.php –

回答

4

可能有些列名是MySql保留字(特別是fromto)。請逃避它們。

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

非常感謝,本文修正了這個問題=) –

0

你應該總是檢查錯誤:

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

一個開放式問題的種類....

您的任何變量是否返回NULL值?如果您試圖向數據庫中插入NULL,並且數據庫列未設置爲接受NULL值,則可能會導致錯誤。

您需要查看查詢實際執行的操作。如果您在文本框中有任何單引號或其他無效字符,那可能會讓您感到困擾。

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

+0

很確定,如果你將'NULL'發送到'NOT NULL'字段,它就會被轉換(到'0'或'''')。 –

+0

你可能是對的;自從我做了上面的查詢之後已經有一段時間了。我知道PDO的錯誤準備了我使用的語句。 – phpmeh

相關問題