查询不适用于表单验证程序

时间:2013-01-06 05:15:16

标签: php mysql

我有这个代码,它基本上是一个寄存器形式验证器:

   $con = mysql_connect("localhost","root","conan");



   function quitar($mensaje)
   {
   $mensaje = str_replace("<","<",$mensaje);
   $mensaje = str_replace(">",">",$mensaje);
   $mensaje = str_replace("\'","'",$mensaje);


   return $mensaje;
   }

   if(trim($HTTP_POST_VARS["nick"]) != "" && trim($HTTP_POST_VARS["email"]) != "")
   {
   $sql = "SELECT id FROM usuarios WHERE nick='".quitar($HTTP_POST_VARS["nick"])."'";
   $result = mysql_query($sql);
   if($row = mysql_fetch_array($result))
   {
   echo "Error, nick escogido por otro usuario";
   }
   else
   {
   $sql = "INSERT INTO usuarios (nick,password,nombre,email) VALUES (";
   $sql .= "'".quitar($HTTP_POST_VARS["nick"])."'";
   $sql .= ",'".quitar($HTTP_POST_VARS["password"])."'";
   $sql .= ",'".quitar($HTTP_POST_VARS["nombre"])."'";
   $sql .= ",'".quitar($HTTP_POST_VARS["email"])."'";
   $sql .= ")";
   mysql_query($sql);
   mysql_close();
   echo "Registro exitoso!";

   mysql_select_db("usuarios", $con);
   $sql2 = "CREATE TABLE persons
   (
   Test varchar(15),
   test2 varchar(15),
   Moni varchar(15),
   Age int
   )";

   // Execute query
  mysql_query($sql2,$con);




   }
  mysql_free_result($result);
  }
  else
  {
    echo "Debe llenar como minimo los campos de email y password";
   }
  mysql_close();

代码工作,但$ sql2查询不起作用我不知道为什么,我想创建该表但不起作用。我错过了什么?

4 个答案:

答案 0 :(得分:1)

你已经关闭了一个mysql连接:

   mysql_query($sql);
   mysql_close();
   echo "Registro exitoso!";

然后你试图运行另一个查询。只是尝试最后运行mysql_close()

答案 1 :(得分:1)

执行第一次查询后,请勿关闭数据库连接。

mysql_query($sql);
//mysql_close(); remove it 
echo "Registro exitoso!";

使用正确的字符串连接:

$sql2 = "CREATE TABLE persons ";
$sql2 .= "( ";
$sql2 .= "Test varchar(15), ";
$sql2 .= "test2 varchar(15), ";
$sql2 .= "Moni varchar(15), ";
$sql2 .= "Age int ";
$sql2 .= ") ";

答案 2 :(得分:0)

   if(!$result)
   {
   echo "Error, nick escogido por otro usuario";
   }
   else
   {
   $sql = "INSERT INTO usuarios (nick,password,nombre,email) VALUES (";
   $sql .= "'".quitar($HTTP_POST_VARS["nick"])."'";
   $sql .= ",'".quitar($HTTP_POST_VARS["password"])."'";
   $sql .= ",'".quitar($HTTP_POST_VARS["nombre"])."'";
   $sql .= ",'".quitar($HTTP_POST_VARS["email"])."'";
   $sql .= ")";
   mysql_query($sql);
   mysql_close();
   echo "Registro exitoso!";

   $con = mysql_connect("localhost","root","conan"); // You closed the connection above!
   mysql_select_db("usuarios", $con);
   $sql2 = "CREATE TABLE persons
   (
   Test varchar(15),
   test2 varchar(15),
   Moni varchar(15),
   Age int
   )"; // you have to specify which type of table you wanna create! Wrong Query here!
   mysql_query($sql2,$con);
  }

在$ sql2中,您必须指定要制作的表格类型。它变成了一个错误的查询,并且PHP也已弃用

的MySQL _

功能

答案 3 :(得分:0)

我非常惭愧。代码很好。

我只是测试一个名字几乎相同的php文档,而不会出现那个不是运行代码的文档。

我向你们每一个人道歉,这是第一次发生这样的事情,邻居发出很多声音,也许这让我分散了。

请原谅我真的很抱歉。