从主要col插入ID到另一个表

时间:2019-06-02 10:54:23

标签: php mysql sql

我想将2个表格的列ID插入另一个表格 我得到了查询,但是有烦人的错误。

我试图解决这个问题达数小时之久没有起作用:(

此代码:

$query = "INSERT INTO
    groups(
      group_school_id,
      group_teacher_id,
      group_name,
      group_note,
      group_system,
      group_students_count
    )
  VALUES(
      $group_shcool_id,
      $group_teacher_id,
      '$group_name',
      '$group_note',
      '$group_system',
      '$group_students_count'
    )";

这个旧的:

<?php

$db['db_host'] = "localhost";
$db['db_user'] = "admin";
$db['db_pass'] = "1998";
$db['db_name'] = "ahlquran";

foreach ($db as $key => $value) {
    define(strtoupper($key), $value);
}

$con = mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_NAME);
mysqli_query($con, "SET NAMES 'utf8'");
}
?>

此新功能:

<?php

// if you are using php just don't forget to add php tags though

$db['db_host'] = "localhost";
$db['db_user'] = "admin";
$db['db_pass'] = "1998";
$db['db_name'] = "ahlquran";

foreach ($db as $key => $value) {
    define(strtoupper($key), $value);
}

//using try catch statements  
try{
  $conn = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASS);
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "Successfully Connected";
}
catch(PDOException $e){
  echo "Connection Failed" .$e->getMessage();
}

?>

its connects successfully but all my code use the old one, how to change to convert it? I dont know what pdo I like to learn it, it seems more pro type, but is there solution for this site only using mysqli?

sorry for the long post this is my 1st one, dont know how to explain enough

Thanks

给出此错误:

  

查询失败。您的SQL语法有误。检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第11行的','test','','test'附近使用

我认为这样可以正常工作,但我认为查询语法存在问题。

1 个答案:

答案 0 :(得分:0)

只是一个建议,尝试使用下面的PDO准备的语句示例:


$query = "INSERT INTO groups(group_school_id,
                group_teacher_id,
                group_name,
                group_note,
                group_system,
                group_students_count) 
    VALUES (:gsid,:gtid,:gname,:gnote,:gsystem,:gstudcount)";


//assuming  $conn is your object variable name for database connection

$stmnt = $conn->prepare($query);

$stmnt->execute(array(':gsid'=>$group_school_id,
                      ':gtid'=>$group_teacher_id,
                      ':gname'=>$group_name,
                      ':gnote'=>$group_note,
                      ':gsystem'=>$group_system,
                      ':gstudcount'=>$group_students_count));
    //to check if you have inserted data into your table
    $rows = $stmnt->rowCount();
    echo "Inserted ".$rows." row";

:gsid是变量的占位符,还要确保传递的每个变量都与数据库中的列数据类型内联

//if you are using php just don't forget to add php tags though

$dbhost = "localhost";
$dbname = "whatevername";
$dbuser = "root";
$dbpass = "";

//using try catch statements  
try{
  $conn = new PDO('mysql:host='.$dbhost.';dbname='.$dbname, $dbuser, $dbpass);
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "Successfully Connected";
}
catch(PDOException $e){
  echo "Connection Failed" .$e->getMessage();
}