我的代码
$insert2 = "INSERT INTO numbers(ContactID, numbers) VALUES('$insertID','" . $capture_field_vals . "')";
mysql_query($insert2);
我得到了
ContactID numbers
1 421312, 123123, 3434543, 123423, 98797
我想要什么
ContactID numbers
1 421312
1 123123
1 3434543
1 123423
1 98797
请帮助我,我不明白该怎么做
答案 0 :(得分:1)
将String
转换为Array
并循环执行insert
操作
$string2Array = explode(",", $capture_field_vals);
foreach($string2Array as $key=>$value){
$insert2 = "INSERT INTO numbers(ContactID, numbers) VALUES('$insertID','" . $value. "')";
mysql_query($insert2);
}
注意:不要使用mysql_*
,因为它已被弃用。尝试使用PDO
根据您的评论,值$_POST["mytext"]
为Array
。所以你不需要转换成字符串。请检查以下代码。
if($_POST["mytext"]){
foreach($_POST["mytext"] as $key=>$value){
$insert2 = "INSERT INTO numbers(ContactID, numbers) VALUES('$insertID','" . $value. "')";
mysql_query($insert2);
}
}
答案 1 :(得分:1)
使用explode()
将字符串拆分为数组,然后循环它们并将它们插入表中。
$numbers = explode(',', $capture_field_vals);
foreach ($numbers as $n) {
$n = trim($n);
if (strlen($n) > 0) {
$insert2 = "INSERT INTO numbers (contactID, numbers) VALUES ('$insertID', '$n')";
mysql_query($insert2);
}
}
答案 2 :(得分:0)
尝试PHP的爆炸功能。
当您在数组中打印值时: $ tempNam = explode(','$ resultset ['numbers']);
并循环$tempNum
答案 3 :(得分:0)
首先爆炸它们。然后生成一个查询。无需在foreach
循环内部运行。请尝试使用 -
$insert2 = "INSERT INTO numbers(ContactID, numbers) VALUES ";
$fields = explode(',', $capture_field_vals);
$values = array();
foreach ($fields as $field) {
$values[] ="('$insertID', '".$field."')";
}
$insert2 .= implode(',', $values);
mysql_query($insert2);
避免使用mysql
函数,因为它们已被弃用,请改用mysqli
或PDO
。
答案 4 :(得分:0)
$values = explode(",", $capture_field_vals);
foreach ($values as $value) {
$insert2 = "INSERT INTO numbers(ContactID, numbers) "
. "VALUES('" . $insertID . "','" . trim($value) . "')";
mysql_query($insert2);
}
注意:
不要使用mysql
函数,因为它们已被弃用。请改用mysqli
或PDO
。
通过转义变量来避免sql注入。
答案 5 :(得分:0)
可能是个好主意: 1.切换到mysqli, 2.使用准备好的声明以确保安全性和清晰度 3.在插入表示单一关系的几行时使用事务来维护数据库完整性
$db = new mysqli('localhost', 'user', 'pass', 'demo');
...
$db->autocommit(FALSE);
$statment = $db->prepare("INSERT INTO numbers(ContactID, numbers) VALUES(?,?)");
foreach (explode(',', $capture_field_vals) as $field_val){
try{
$statement->bind_param('ss', $insertID, $field_val);
} catch (Exception $e){
$db->rollback();
}
}
$db->commit();