我有一个表,有超过750行数据,我粘贴在一个文本区,并获得作为一个字符串变量,然后我通过一个ajax传递数据作为一个字符串,我想把它插入到我的数据库中,只有一个INSER INTO行
if(isset($_POST['data'])){
$data = mysqli_real_escape_string($conexion,$_POST['data']); // get the string of data
// on the next two lines I try to give the format like if it were multiple rows of data to insert
$data = str_replace("t", "','", $data);
$data = str_replace("n", "')('", $data);
// at this point $data = data1','data2','data3','data4','data5','data6')
// ('data1','data2','data3','data4','data5','data6')
// .
// .
// .
// .
// ('data1','data2','data3','data4','data5','data6
$sql = "INSERT INTO table(col1, col2, col3, col4, col5, col5, col6) VALUES ('$data')";
$result = mysqli_query($conexion,$sql);
是否有一种方法可以使这项工作,我能够在数据库上插入一个值一次的数据,但需要很长时间什么好主意吗?
多行语句格式:
INSERT INTO table_name (column_list)
VALUES
(value_list_1),
(value_list_2),
...
(value_list_n);
您正在使用换行符来确定记录数据何时应该包含括号。按照上面的格式,用逗号分隔。
$data = str_replace("n", "'),('", $data);
由于$data现在由许多记录组成,每条记录都在括号内并用逗号分隔,因此在构造SQL查询时不需要重复使用括号。
$sql = "INSERT INTO table(col1, col2, col3, col4, col5, col5, col6) VALUES $data";
我最喜欢的调试方法是打印出$sql语句。然后复制它,并直接对数据库运行它,看看它抛出了什么错误。