-1
<?php
            $con = mysql_connect("localhost:3306","root","");
            try
            {
                if (!$con)
                 {
                     die('Could not connect to MySql Server : ' . mysql_error());
                }

                $db_found = mysql_select_db("registerdb");  

                if ($db_found) 
                {
                    print "Database Found";
                }
                else 
                {
                    print "Database NOT Found";
                }
                mysql_query("INSERT INTO register VALUES ('$_POST[Field2]','$_POST[Field4]','$_POST[Field7]','$_POST[Field8]','$_POST[Field9]','$_POST[Field13]','$_POST[Field14]','$_POST[Field15]')");

                mysql_close($con);
            }
            catch(Exception $e)
            {
                echo 'Message: ' .$e->getMessage();
            }
?>

我在运行时没有收到任何错误,选择查询对同一数据库工作正常。这是寄存器的表定义

 Name          Type           Null      Key
 id       bigint(10)      NO        PRI     auto_increment
sname     varchar(20)     NO             
dob       date  YES       NULL   
email     varchar(30)     NO             
gender    varchar(7)      NO             
mobile    int(10)     YES            
country       varchar(15)     NO             
state     varchar(15)     YES            
city      varchar(15)     YES 

我在 php 中没有收到任何 sysntax 错误。

抱歉我的错误,我编辑了它。

4

6 回答 6

2

你搞砸了你的第四个变量:

POST[Field4] [Should Be] $_POST[Field4]

您还错过了 Field15 之后的结束语

为避免任何错误,在查询中包含您的模式也是一个好主意:

INSERT INTO example_table (field1, field2, field3) VALUES (value1, value2, value3);

编辑

我们如何尝试一个全力以赴的转义查询......

mysql_query('INSERT INTO register VALUES ("'.$_POST['Field2'].'","'.$_POST['Field4'].'","'.$_POST['Field7'].'","'.$_POST['Field8'].'","'.$_POST['Field9'].'","'.$_POST['Field13'].'","'.$_POST['Field14'].'","'.$_POST['Field15'].'")');
于 2013-01-29T10:04:43.847 回答
2
,'$_POST[Field15])'");
                  ^_______________ Missed quote.

使用参数而不是 POST 数据连接来避免潜在的 SQL 注入。

于 2013-01-29T10:04:51.327 回答
2

其实语法错了,

Insert into register ('field1','field2',...,'field n') values ('value1','value2',..,'value n');
于 2013-01-29T10:07:34.237 回答
0

我在这里看不到任何问题,但我猜 'POST[Field4]' 是一个错字 - 但正如其他人所说,你真的不应该使用 mysql_ 函数。

于 2013-01-29T10:06:58.050 回答
0

mysql_query 不会抛出异常,您必须检查它的返回值并调用 mysql_error 以获取更多信息。

如评论中所述,不推荐使用 mysql 。

于 2013-01-29T10:07:23.423 回答
0

它应该是这样的:

$query = "INSERT INTO table(column 1, column 2, column 3) VALUES('".$value1."','".$value2."', '".$value3."')";

试试这个。

于 2013-01-29T12:52:20.477 回答