在MySQL表中插入一个php字符串作为多行
我有一个表,其中包含超过750行的数据,我将这些数据粘贴到一个textarea上,并作为单个字符串变量获取,然后我将数据作为一个字符串通过ajax传递,我希望将其插入到数据库中的一行中在MySQL表中插入一个php字符串作为多行,php,mysql,sql,Php,Mysql,Sql,我有一个表,其中包含超过750行的数据,我将这些数据粘贴到一个textarea上,并作为单个字符串变量获取,然后我将数据作为一个字符串通过ajax传递,我希望将其插入到数据库中的一行中 if(isset($_POST['data'])){ $data = mysqli_real_escape_string($conexion,$_POST['data']); // get the string of data // on the next two li
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语句。然后复制它并直接在数据库上运行,以查看它抛出了哪些错误。这在什么方面不起作用?请提供示例输入数据并解释代码是如何工作的。它没有做任何事情,甚至没有显示错误消息,我猜是没有将字符串作为正确的文本格式或类似的东西。在值集之间需要逗号吗?但是你已经有了一张表了!?!感谢Joe Ward,您的调试方法建议是解决此问题的关键