问题与形式PHP和sql



我是php和sql的新手,我有这个表单,它向数据库提交一些名字和城市。

我设法做到了,但是一旦点击提交按钮,我得到一个错误:

"Error:你的SQL语法有错误;查看与MySQL服务器版本对应的手册,了解在第1行

附近使用'1'的正确语法。

但是,当我检查phpmyadmin时,新记录就在那里!!,所以我不确定是什么问题,这就是问题所在。

这是代码:

<?php
   mysql_connect("localhost", "name", "pass") or die(mysql_error());
   echo "Connection to the server was successful!<br/>";
   mysql_select_db("db_name") or die(mysql_error());
   echo "Database was selected!<br/>";

    $resultComuna = mysql_query("SELECT idComuna, nombre FROM comuna ORDER BY nombre ASC");
    $resultGiro = mysql_query("SELECT idGiro, nombre FROM giro ORDER BY nombre ASC");
?>
<html>
<head>
    <title>TEST</title>
</head>
<body>
    <br/><br/>
    <form name="form" method="POST" action="test_action.php">
        <div align="center">
    <!--/////////////////  input nombre ////////////////////////  -->
            NOMBRE CLIENTE:
            <input name="nombreCliente" type="text" maxlength="30" size="40"></>
    <!-- ///////////////////////////////////////////////////////////// -->
    <!-- ////////////////////drop box para giro ///////////////////// -->
            GIRO:
            <select name="giro">
            <?php
            while($row = mysql_fetch_assoc($resultGiro)){
                echo "<option value="".$row['idGiro']."">".$row['nombre']."</option><br/>";
            }
            ?>      
            </select>
    <!-- ///////////////////////////////////////////////////////////// -->
    <!-- ////////////// dropbox para comunas //////////////////////// -->
            COMUNA:
            <select name="comunas">
            <?php
            while($row = mysql_fetch_assoc($resultComuna)){
                echo "<option value="".$row['idComuna']."">".$row['nombre']."</option><br/>";
            }
            ?>      
            </select>
    <!-- ////////////////////////////////////////////////////////////// -->
        <input type="submit" value="Ingresar"> </>
        </div>
    </form>
</body>
</html>
test_action.php是:
<?php
    $con = mysql_connect("localhost", "name", "pass");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
    mysql_select_db("data_base", $con);

$query = mysql_query("SELECT max(idNombre)+1 as id FROM nombre");
$row = mysql_fetch_array($query);
$idMax = $row['id'];

    $sql = mysql_query("INSERT INTO nombre VALUES ('".$idMax."','".$_POST['comunas']."',".$_POST['giro'].",'".$_POST['nombreCliente']."')");
    if (!mysql_query($sql,$con))
      {
      die('Error: ' . mysql_error());
      }
    echo "record added";
    mysql_close($con)
?>

将ID插入单引号:

$sql = mysql_query("INSERT INTO nombre VALUES ('".$idMax."','".$_POST['comunas']."',".$_POST['giro'].",'".$_POST['nombreCliente']."')");

你能提供表结构吗?ID是整数还是varchar ?

尝试将test_action.php更改为:

<?php
    $con = mysql_connect("localhost", "name", "pass");
    if (!$con)
        {
        die('Could not connect: ' . mysql_error());
        }
    mysql_select_db("data_base", $con);
    $query = mysql_query("SELECT max(idNombre)+1 as id FROM nombre");
    $row = mysql_fetch_array($query);
    $idMax = $row['id'];
    $query = "INSERT INTO nombre VALUES ('".$idMax."','".$_POST['comunas']."',".$_POST['giro'].",'".$_POST['nombreCliente']."')";
    $sql = mysql_query($query);
    if (!mysql_query($sql,$con))
    {
        die('Error: ' . mysql_error().'<br>query: '.$query);
    }
    echo "record added";
    mysql_close($con);
?> 

它有助于调试

最新更新