如何对SQL进行多个查询

时间:2015-08-19 18:39:15

标签: php mysql sql database mysqli

我正在尝试创建一个表,并在PHP脚本的帮助下在数据库中插入一些值。 只插入一行,它工作正常。当我尝试输入更多行时,它会出错;

我需要为每个查询编写整个insert语句,因为我使用的是在线excel到SQL查询转换器。

<?php

error_reporting(E_ALL);
ini_set('display_errors', '1');
include_once("connect_to_Mysql.php");
$sqlCommand = "CREATE TABLE book (
Book_Index INT,
Book_name VARCHAR(38) CHARACTER SET utf8,
author_name VARCHAR(5) CHARACTER SET utf8,
Publisher VARCHAR(5) CHARACTER SET utf8,
Category INT,
Subcategory VARCHAR(21) CHARACTER SET utf8,
Price INT)";

$query = mysqli_query($db_conx,$sqlCommand) or die(mysqli_error($db_conx));
echo "<h3>Success creating book table</h3>";

$sqlCommand = "
INSERT INTO book VALUES (1,'Concepts of Physics Volume I','hc verma','bharti bhavan','jee','physics',635,'english');
 INSERT INTO book VALUES (2,'PLANE TRIGONOMETRY Part-1','sl loni','arihant publication','jee','math',95,'english');
 INSERT INTO book VALUES (3,'VIT (VELLORE) EDGE SOLVED PAPERS & 10 MOCK        TESTS (2007-2015)','Arihant Experts','arihant publication','vit','all in one',345,'english');
 INSERT INTO book VALUES (4,'A Textbook of Algebra','sk goyal','arihant publication','jee','math',425,'english');
INSERT INTO book VALUES (5,'New Pattern IIT JEE PHYSICS','dc pandey','arihant publication','jee','physics',665,'english');
INSERT INTO book VALUES (6,'Objective Approach to Mathematics','amit m aggrawal','arihant publication','jee','math',710,'english');
INSERT INTO book VALUES (7,'A Complete Success Package for','Experts Compilation','arihant publication','bitsat','all in one',775,'english');
INSERT INTO book VALUES (8,'15 Years'' Solved Papers for AMU Engineering     Entrance Exam','arihant Experts','arihant publication','AMU','all in one',325,'english');
INSERT INTO book VALUES (9,'Solved Papers & 5 Mock Tests for BVP Engineering','arihant Experts','arihant publication','BVP','all in one',365,'english');

";
$query = mysqli_query($db_conx,$sqlCommand) or die(mysqli_error($db_conx));
echo "<h3>Success populating the pages table with data</h3>";

?>

输出

Successful database connection, happy coding!!!
Success creating book table
You have an error in your SQL syntax; check the manual that corresponds      to your MySQL server version for the right syntax to use     near 'INSERT INTO book VALUES (2,'PLANE TRIGONOMETRY Part-1','sl loni','arihant public' at line 2

2 个答案:

答案 0 :(得分:2)

使用mysqli_multi_query代替mysqli_query,应该这样做。

$query = mysqli_multi_query($db_conx,$sqlCommand) or die(mysqli_error($db_conx));

http://php.net/manual/en/mysqli.multi-query.php

答案 1 :(得分:0)

更简单的方法可能是使用;拆分字符串并迭代数组中的每个查询。一个接一个地执行所有这些..

$sqlCommandArray[]=explode(";",$sqlCommand);

for($i=0;$i<count($sqlCommandArray);$i++){
try{
  mysqli_query($db_conx,$sqlCommandArray[$i]);
} 
catch(Exception $ex){
  echo "there was an error in executing the queries";
}
}

这样做可以不做任何修改。

 $query = mysqli_multi_query($db_conx,$sqlCommand);