0

我有这段代码,它基本上是一个注册表单验证器:

   $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

4 回答 4

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 .= ") ";
于 2013-01-06T05:37:18.147 回答
1

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

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

之后,您尝试运行另一个查询。试着跑到mysql_close()最后。

于 2013-01-06T05:18:55.460 回答
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_

功能。

于 2013-01-06T05:22:39.837 回答
0

我非常惭愧。代码很好。

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

我向你们每一个人道歉,这样的事情是第一次发生在我身上,邻居们制造了很多噪音,也许这让我分散了注意力。

请原谅我真的很抱歉。

于 2013-01-06T06:44:04.567 回答