php - INSERT INTO 2表查询

标签 php mysql

我正在尝试将一个查询插入到 2 个表中,但不起作用。 我想将所有 _POST 数据保存到“tours”表和图像库介绍“poze_articol”表中,其中 poze_articol 中的“pid”是 tours id 的 id,一些帮助感谢您,因为我是 php 新手,谢谢!

PHP 代码:

<?php
$dbhost = '';
$dbuser = '';
$dbpass = '';
$myDBname = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass, $myDBname);
$db_selected = mysql_select_db('antonytravel', $conn);
if (!$db_selected) {
    die ('Can\'t use antonytravel : ' . mysql_error());
}
if(isset($_POST['addtour']))
{
if (!isset($_FILES['poza_caseta']['tmp_name'])) {
    echo "";
    }else{
    $file=$_FILES['poza_caseta']['tmp_name'];
    $image= addslashes(file_get_contents($_FILES['poza_caseta']['tmp_name']));
    $image_name= addslashes($_FILES['poza_caseta']['name']);

            move_uploaded_file($_FILES["poza_caseta"]["tmp_name"],"../../../../img/traseu_thmb/" . $_FILES["poza_caseta"]["name"]);

            $poza_caseta="img/traseu_thmb/" . $_FILES["poza_caseta"]["name"];

    if (!isset($_FILES['poza_header']['tmp_name'])) {
    echo "";
    }else{
    $files=$_FILES['poza_header']['tmp_name'];
    $images= addslashes(file_get_contents($_FILES['poza_header']['tmp_name']));
    $images_name= addslashes($_FILES['poza_header']['name']);

            move_uploaded_file($_FILES["poza_header"]["tmp_name"],"../../../../img/poze_header/" . $_FILES["poza_header"]["name"]);

            $poza_header="img/poze_header/" . $_FILES["poza_header"]["name"];

            ########### Poze Upload #########
error_reporting(0);
define ("MAX_SIZE","9000"); 
function getExtension($str)
{
         $i = strrpos($str,".");
         if (!$i) { return ""; }
         $l = strlen($str) - $i;
         $ext = substr($str,$i+1,$l);
         return $ext;
}
$valid_formats = array("jpg", "png", "bmp","jpeg");
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST") 
{

    $uploaddir = "../../../../img/gallery/"; //image upload directory
    foreach ($_FILES['photos']['name'] as $name => $value)
    {

        $filename = stripslashes($_FILES['photos']['name'][$name]);
        $size=filesize($_FILES['photos']['tmp_name'][$name]);
        //get the extension of the file in a lower case format
          $ext = getExtension($filename);
          $ext = strtolower($ext);

         if(in_array($ext,$valid_formats))
         {
           if ($size < (MAX_SIZE*1024))
           {
           $image_name=time().$filename;

           $newname=$uploaddir.$image_name;

           if (move_uploaded_file($_FILES['photos']['tmp_name'][$name], $newname)) 
           {

$sqlz =  "INSERT INTO tours (titlu,durata,descriere,pret,ribbon,poza,titlu_slider,desc_slider,poza_slider,descriere_box,titlu_box1,desc_box1,titlu_box2,desc_box2,titlu_box3,desc_box3,titlu_box4,desc_box4,poze_articol) VALUES ('".$_POST["oras_caseta"]."','".$_POST["durata_caseta"]."','".$_POST["descriere_caseta"]."','".$_POST["pret_caseta"]."','".$_POST["icon_caseta"]."','$poza_caseta','".$_POST["titlu_slider"]."','".$_POST["descriere_slider"]."','$poza_header','".$_POST["descriere_overview"]."','".$_POST["titlu_box1"]."','".$_POST["desc_box1"]."','".$_POST["titlu_box2"]."','".$_POST["desc_box2"]."','".$_POST["titlu_box3"]."','".$_POST["desc_box3"]."','".$_POST["titlu_box4"]."','".$_POST["desc_box4"]."')";

$sqlz .=  "INSERT INTO poze_articol (poza_slider,pid) VALUES ('img/gallery/$image_name','1')";
$retval = mysql_query( $sqlz, $conn );

echo '<div class="alert alert-success" role="alert">
  <strong>Bravo!</strong> Ai adaugat cu succes un traseu pe site. 
</div>';
}
 }
  }
   }
    }
     }
      }
}
?>

最佳答案

您无法像连接 $sqlz 变量那样连接 SQL 指令。

您必须一次执行一个 SQL 插入查询。

因此,在第一次 INSERT intotours 之后,您需要执行 mysql_query( $sqlz, $conn )。完成此操作后,您需要通过 INSERT INTO poze_articol 再次重用 $sqlz,然后再次执行 mysql_query( $sqlz, $conn ) 。请尝试以下操作:

$sqlz =  "INSERT INTO tours (titlu,durata,descriere,pret,ribbon,poza,titlu_slider,desc_slider,poza_slider,descriere_box,titlu_box1,desc_box1,titlu_box2,desc_box2,titlu_box3,desc_box3,titlu_box4,desc_box4,poze_articol) VALUES ('".$_POST["oras_caseta"]."','".$_POST["durata_caseta"]."','".$_POST["descriere_caseta"]."','".$_POST["pret_caseta"]."','".$_POST["icon_caseta"]."','$poza_caseta','".$_POST["titlu_slider"]."','".$_POST["descriere_slider"]."','$poza_header','".$_POST["descriere_overview"]."','".$_POST["titlu_box1"]."','".$_POST["desc_box1"]."','".$_POST["titlu_box2"]."','".$_POST["desc_box2"]."','".$_POST["titlu_box3"]."','".$_POST["desc_box3"]."','".$_POST["titlu_box4"]."','".$_POST["desc_box4"]."')";

mysql_query( $sqlz, $conn );

$sqlz =  "INSERT INTO poze_articol (poza_slider,pid) VALUES ('img/gallery/$image_name','1')";

mysql_query( $sqlz, $conn );

关于php - INSERT INTO 2表查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47704844/

相关文章:

PHP/MySQL - 计算销售数量并显示该数量和销售者

mysql - 从替换列表中搜索并替换

php - 为什么 findOne($query) 在集合上工作而 find($query) 不使用 PHP 的 Mongo 驱动程序?

php - 数据库和PHP未连接到phpMyAdmin(基本代码)

php - 如果 IN 子句在 Mysql 中为空,则给出所有行

php - 禅德 : setBelongsTo no working right

php - 提取内容并使用 PHP 对其进行 base64 编码后无法取回视频

MySQL 查询不会返回预期结果

python - PyMySQL:连接被主机中的软件中止

php - Codeigniter 路线和语言标识符