我想弄清楚如何在單個文本框中以逗號(,)分隔每個單詞的單個文本框中輸入多個單詞,然後根據逗號分隔單詞並插入db作爲每個單詞作爲單獨的記錄。用逗號分隔的HTML表單輸入字段
我的想法走的是輸入
,然後使用爆炸分離出來的話PHP的功能,並將其存儲在數據庫,但我不知道如何在數據庫存儲。
我想弄清楚如何在單個文本框中以逗號(,)分隔每個單詞的單個文本框中輸入多個單詞,然後根據逗號分隔單詞並插入db作爲每個單詞作爲單獨的記錄。用逗號分隔的HTML表單輸入字段
我的想法走的是輸入
,然後使用爆炸分離出來的話PHP的功能,並將其存儲在數據庫,但我不知道如何在數據庫存儲。
我知道一堆mysql_ *函數的答案會進來,所以生病添加準備好的查詢路由。
這並非完美無缺,但你會得到的想法
// Get the array of words
$words = explode(',', $formname);
// Create an array of :word1, :word2, :word3, etc for use in binding
foreach(range(1, count($words)) as $wordnumber) {
$bind[] = ':word'.$wordnumber;
}
// Create the sql query
$sql = sprintf("insert into table (word) values (%s)", implode('),(', $bind));
// Prepare the query
$stmnt = $pdo->prepare($sql);
// Bind each word
foreach($words as $k => $word) {
$stmnt->bindValue(":word" . ++$k, $word);
}
// Execute
$stmnt->execute();
如果您需要封裝詞語的報價,這應該做的伎倆:
<?php
$myString='sometext,someothertext,and something else';
$query="insert into table1 (columnName) values (('".str_replace(',',"'),('",$myString)."'))";
echo $query;
?>
輸出:
insert into table1 (columnName) values (('sometext'),('someothertext'),('and something else'))
這將在適當的根據mysql insert multiple values syntax插入多條記錄。
但它不會將差異字存儲爲差異記錄,例如。 aditya,laurence,max,raptor這應該作爲每個單詞的單獨記錄輸入。 – 2012-08-08 08:57:35
這是adi的一排,laurence的另一個等等。 – 2012-08-08 08:59:39
@AdityaKumar固定,請參閱編輯。 – Fluffeh 2012-08-08 09:00:57
$str = $_POST['words'];
$piece = explode(',',$str);
foreach($piece as $substr){
mysql_query("INSERT INTO test (words) VALUES ('".$substr."');";
}
您可以用PDO做到這一點:
<?php
//Connect safely to your database
try {
$db = new PDO("mysql:host=localhost;dbname=test", 'root', 'password');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);
} catch (PDOException $e) {
die('Cannot connect to mySQL server. Details:'.$e->getMessage());
}
if ($_SERVER['REQUEST_METHOD']=='POST' && !empty($_POST['words'])) {
$sql = "INSERT INTO words_table (word) VALUES (:word)";
$stmt = $db->prepare($sql);
$stmt->bindParam(':word', $word);
foreach (explode(',', $_POST['words']) as $word) {
$word = trim($word);
if (empty($word)) {
continue;
}
$stmt->execute();
}
}
//Your form
?>
<h1>Words</h1>
<form method="POST" action="">
<input type="text" name="words"/>
<input type="submit" name="submit" value="Submit"/>
</form>
我有輸入文本字段的表單頁面,我將該輸入值存儲在變量中,然後我使用爆炸來基於逗號分隔值,然後我迷路了。 – 2012-08-08 08:55:48