Php 使用if(mysql\u查询)在多个表中插入数据
我是PHP MySQL的初学者。我想问一下如何使用此代码在多个表中插入数据,我将以单一形式使用此代码 这是我的单表工作代码: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']); $
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);
}
?>