如何创建两个查询mysql插入并创建表

问题描述:

我想创建两个查询,一个将数据输入到一个表中,另一个创建一个新表。这是我创建新表但不插入数据的代码。我错在哪里?谢谢。如何创建两个查询mysql插入并创建表

$sql = "INSERT INTO progetti(data, ora, nome_progetto)VALUES('".$_POST["data"]."','".$_POST["ora"]."','".$_POST["nome_progetto"]."')"; 

      "CREATE TABLE $_POST[nome_progetto] (
      id INT(11) AUTO_INCREMENT PRIMARY KEY, 
      data date, 
      intervento varchar(30), 
      descrizione varchar(70), 
      ore int(2) 
     )"; 
+5

PHP不支持多重查询。顺便说一句,请了解SQL注入以及如何防止他们@ http://bobby-tables.com ...您的代码根本不安全,您的数据库可能会在几秒钟内被黑客入侵。请在查询中为用户输入使用准备好的语句。 – Twinfriends

+1

你需要分开两条'SQL'语句。 – Sand

+0

@Twinfriends看到[mysqli :: multi_query](http://php.net/manual/en/mysqli.multi-query.php) –

在这里,您可以创建,如果else语句,如果插入完成创作,然后将运行

<?php 

/* 
* These are Database Credentials 
*/ 
    $servername = "localhost"; 
    $username = "root"; 
    $password = " "; 
    $dbname = "test_db"; 

    /* 
    * Intiating the Database connection 
    */ 
    $conn = new mysqli($servername, $username, $password, $dbname); 

    /* 
    * Checking the Databse connection 
    */ 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 

    $create = "CREATE TABLE ".$_POST[nome_progetto]." (
        id INT(11) AUTO_INCREMENT PRIMARY KEY, 
        data date, 
        intervento varchar(30), 
        descrizione varchar(70), 
        ore int(2))"; 
      $result = $conn->query($create);  

    if ($result === TRUE) { 
    $sql = "INSERT INTO progetti(data, ora, nome_progetto)VALUES('".$_POST["data"]."','".$_POST["ora"]."','".$_POST["nome_progetto"]."')"; 

     $insert = $conn->query($sql); 
     if ($insert === TRUE) { 
     echo "New record created successfully"; 
    } else { 
     echo "Error: " . $sql . "<br>" . $conn->error; 
    } 

    } 


    $conn->close(); 
    ?> 
+0

嗨,谢谢你的回答,查询不起作用,你把完整的代码。该应用程序安装在本地PC上,未连接到Internet。我是新来的PHP和一些我不知道的语法。 –

+0

$ SQL = “INSERT INTO PROGETTI \t \t \t \t \t(数据,ORA) \t \t \t \t \t VALUES \t \t \t \t \t('”。$ _ POST [ “数据”]。“', \t \t \t \t \t”” $ _ POST。[ “ORA”]。 “”, \t \t \t \t \t)”; \t \t \t \t \t $ query = $ conn-> query($ sql); $ result = $ query-> result(); \t \t \t \t \t如果(isset($结果)){ $ SQL =“CREATE TABLE $ _POST [nome_progetto]( ID INT(11)AUTO_INCREMENT PRIMARY KEY, 数据日期, intervento VARCHAR(30), )“; $ query = $ conn-> query($ sql); $ query-> result(); } –

+0

喜最多不要担心男人, 首先,你应该在你的本地系统 安装WAMP的服务器再有就是在C文件夹:/ Wamp64/WWW 一些sample.php创建文件,并粘贴代码 在代码 更新数据库的凭据那么你必须通过邮政价值 检查出来 我已修改答案 –

  1. 使用不同的SQL语句(在你的情况2,一个用于插入和另一个用于创建表)
  2. 使用准备通过抽象层(PDO)在PHP
  3. 提供报表了解SQL Injection