2012-06-25 37 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

相关问题