Php 使用if(mysql\u查询)在多个表中插入数据

Php 使用if(mysql\u查询)在多个表中插入数据,php,mysql,Php,Mysql,我是PHP MySQL的初学者。我想问一下如何使用此代码在多个表中插入数据,我将以单一形式使用此代码 这是我的单表工作代码: if (isset($_POST['btn-signup'])) { //table 1 $variable1 = mysql_real_escape_string($_POST['column1']); $variable2 = mysql_real_escape_string($_POST['column2']); $

我是PHP MySQL的初学者。我想问一下如何使用此代码在多个表中插入数据,我将以单一形式使用此代码

这是我的单表工作代码:

     if (isset($_POST['btn-signup'])) {
     //table 1
     $variable1 = mysql_real_escape_string($_POST['column1']);
     $variable2 = mysql_real_escape_string($_POST['column2']);
     $variable3 = mysql_real_escape_string($_POST['column3']);
     //table 2
     $var1 = mysql_real_escape_string($_POST['columnT1']);
     $var2 = mysql_real_escape_string($_POST['columnT2']);
     $var3 = mysql_real_escape_string($_POST['columnT3']);



 if(mysql_query("INSERT INTO tableName( column1, column2, column3 )
      VALUES ('$variable1, '$variable2', '$variable3' )"))      
{
  ?>
    <script type="text/javascript">('ADDED SUCCESFULLY!');</script>
  <?php
} else {
?>
  <script type="text/javascript">('Failed!');</script>    
<?php

您可以再次使用
mysql\u query()

if(mysql_query("INSERT INTO tableName( column1, column2, column3 ) {
  VALUES ('$variable1, $variable2, $variable3' )"))      
    echo 'Success insert into tableName';
} else {
    echo 'Failed insert into tableName';
}

if(mysql_query("INSERT INTO tableName2( columnT1, columnT2, columnT3 )
  VALUES ('$var1, $var2, $var3' )")) {
    echo 'Success insert into tableName2';
} else {
    echo 'Failed insert into tableName2';
}

但它仍然是非常程序化的,这里的输出不应该与JS一起使用。我建议你开始阅读,你需要在你的价值观周围加上引号。并使用
mysql\u受影响的行
检查您的行是否插入

<?php

$query1=mysql_query("INSERT INTO tableName( column1, column2, column3)
      VALUES('".$variables."','". $variable2."','". $variable3."')");
$row=mysql_affected_rows();
if($row>0){
    echo "INSERT SUCESSFULLY";
}else{
    echo "ERROR";
}

$query2=mysql_query("INSERT INTO tableName2( columnT1, columnT2, columnT3 )
      VALUES ('".$var1."', '".$var2."', '".$var3."' )");

$row1=mysql_affected_rows();
if($row1>0){
    echo "INSERT SUCESSFULLY";
}else{
    echo "ERROR";
}

我可以知道您在执行页面时遇到的错误吗?可以尝试在第二次插入查询之前添加
mysql\u query

mysql_query("INSERT INTO tableName2( columnT1, columnT2, columnT3 )
  VALUES ('$var1, $var2, $var3' )"))

首先,您必须检查是否使用
mysqli
PDO
而不是
mysql

$con = mysqli_connect("localhost", "user", "password", "databasename");
解决方案1:

您必须在单独的电话中进行此操作:

当使用两个
mysqli\u查询
调用时,您应该查看一下

解决方案2:

使用:


使用
mysqli
时,应该使用和,而不是直接在SQL字符串中使用php变量。这将帮助您避免SQL注入。

您不能在一条语句中插入多个表。但您可以使用事务

START TRANSACTION;
INSERT INTO tableName (column1,column2,column3) VALUES ('$variable1','$variable2','$variable3');
INSERT INTO tableName2 (column1,column2,column3) VALUES ('$var1','$var2','$var3');
COMMIT;
请参阅:

试试这个

 if(mysql_query("INSERT INTO tableName( column1, column2, column3 )
      VALUES ('$variable1', '$variable2', '$variable3' )"))    // '$variable1' 
{
  ?>
    <script type="text/javascript">alert('ADDED SUCCESFULLY!');</script> // add alert()
  <?php
} else {
?>
  <script type="text/javascript">alert('Failed!');</script>  // add alert()   
<?php }?>

second table :- ("INSERT INTO tableName2( columnT1, columnT2, columnT3 )
  VALUES ('$var1', '$var2, '$var3' )"));

您可以检查生成查询的输出或错误,复制生成查询并在中运行

phpmyadmin > select database > table > Sql > paste there > Go

如果它不起作用,那么告诉我你可以试试这个,这对你来说可能很复杂,但更好:)


您正在使用mysql\u查询(“插入到tableName2(columnT1、columnT2、columnT3)值('$var1、$var2、$var3'))开始使用PDO或mysqli。您可以再次运行相同的insert,指向具有相应列的新表。如果您的值是字符串,则在插入时插入引号。我忘了说,这是针对一个表单的。可以使用吗?可以使用单个表单吗?可以,可以,下面是单个表单
$query2
我将使用与
$query1
相同的代码?可以,您可以使用
mysql\u受影响的行
检查数据是否插入或没有错误,先生,
警告:mysql\u受影响的行()希望参数1是资源,布尔值
如果(!mysql_query(“插入到tableName2(columnT1,columnT2,columnT3)值('$var1,$var2,$var3'))中)回显mysql_error()放这个。让我知道结果
'$var1,$var2,$var3'
是错误的,它应该是:
'$var1','$var2','$var3'
如果在执行mysql查询函数put mysql_error()时出错;有助于发现错误。谢谢,谢谢。但是我想在MySQLi中首先使用它为什么在手动创建SQL语句时推荐MySQLi?这就像使用常规MySQL模块那样不安全。。。(还请注意,SQL语句无论如何都是错误的…
'$var1、$var2、$var3'
应替换为
'$var1'、$var2'、$var3'
)@AlejandroIván感谢您的提示!我没有使用prepared语句,因为我想关注如何同时执行两条语句。我添加了对
mysql\u prepare
mysql\u stmt\u bind\u param
的引用。我还添加了缺少的单引号。等等。第二个表中的
INSERT
在哪里?
第二个表:-(“插入到tableName2(columnT1、columnT2、columnT3)值(“$var1”、“$var2”、“$var3”)))是这样吗?没意见吗?兄弟,你们要求第二个表,就像你们在代码中放置第一个表和第二个表查询一样。如果您确实有任何错误或问题,请告诉。2次
mysql\u query
?正如您在问题中提到的INSERT INTO tableName和INSERT INTO tableName2。
START TRANSACTION;
INSERT INTO tableName (column1,column2,column3) VALUES ('$variable1','$variable2','$variable3');
INSERT INTO tableName2 (column1,column2,column3) VALUES ('$var1','$var2','$var3');
COMMIT;
 if(mysql_query("INSERT INTO tableName( column1, column2, column3 )
      VALUES ('$variable1', '$variable2', '$variable3' )"))    // '$variable1' 
{
  ?>
    <script type="text/javascript">alert('ADDED SUCCESFULLY!');</script> // add alert()
  <?php
} else {
?>
  <script type="text/javascript">alert('Failed!');</script>  // add alert()   
<?php }?>

second table :- ("INSERT INTO tableName2( columnT1, columnT2, columnT3 )
  VALUES ('$var1', '$var2, '$var3' )"));
echo  ("INSERT INTO tableName2( columnT1, columnT2, columnT3 )
  VALUES ('$var1', '$var2, '$var3' )")) or die(mysql_error());
echo  ("INSERT INTO tableName2( columnT1, columnT2, columnT3 )
  VALUES ('$var1', '$var2, '$var3' )"));

INSERT INTO tableName2( columnT1, columnT2, columnT3 ) VALUES ('var1', 'var2, 'var3' ) // out put
phpmyadmin > select database > table > Sql > paste there > Go
<?php

$link = mysqli_connect("localhost", "<username>", "<password>", "<database>");

// Check connection
if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
}

 if (isset($_POST['btn-signup'])) {

// Your tables here
$tables = array('table1', 'table2', 'table3');

for ($x=0; $x < 3; $x++) {

switch ($x) {
    // Escape user inputs for security and your columns
    case "1":
    $values[$tables[$x]] = array(mysqli_real_escape_string($link, $_POST['column1']), mysqli_real_escape_string($link, $_POST['column2']), mysqli_real_escape_string($link, $_POST['column3']));    
    $columns[$tables[$x]] = array('columnT1', 'columnT2', 'columnT3');
    break;

    case "2":
    $values[$tables[$x]] = array(mysqli_real_escape_string($link, $_POST['columnT1']), mysqli_real_escape_string($link, $_POST['columnT2']), mysqli_real_escape_string($link, $_POST['columnT3'])); 
    $columns[$tables[$x]] = array('columnT1', 'columnT2', 'columnT3');
    break;

    case "3":
    $values[$tables[$x]] = array(mysqli_real_escape_string($link, $_POST['columnT1']), mysqli_real_escape_string($link, $_POST['columnT2']), mysqli_real_escape_string($link, $_POST['columnT3'])); 
    $columns[$tables[$x]] = array('columnT1', 'columnT2', 'columnT3');
    break;
}

// attempt insert query execution
$sql = "INSERT INTO ".$tables[$x]." (".$columns[$tables[$x]][0].", ".$columns[$tables[$x]][1].", ".$columns[$tables[$x]][2].") VALUES ('".$values[$tables[$x]][1]."', '".$values[$tables[$x]][2]."', '".$values[$tables[$x]][3]."')";

if(mysqli_query($link, $sql)){
    echo "Records added successfully for ".$tables[$x].".";
} else{
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}

}

// close connection
mysqli_close($link);
}
?>