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

最初のクエリを実行した後、DB 接続を閉じないでください。

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

私はひどく恥ずかしいです。コードは問題ありません。

私は、コードを実行しているものではない、ほぼ同じ名前のphpドキュメントをテストしています。

このようなことが私に起こったのは初めてで、隣人が多くの騒ぎを起こし、それが私を分散させたのかもしれません。

すみません本当にごめんなさい。

于 2013-01-06T06:44:04.567 に答える
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 に答える