Привет, я пытаюсь сделать код для ОБНОВЛЕНИЯ или ИЗМЕНИТЬ ответы и комментарии опроса за ответ, но когда я выполняю функцию, подающую форму, она не сохранила никакого значения в базе данных. Что я могу сделать, чтобы исправить это?PDO UPDATE массив с использованием php mysql
Я новичок в PDO.
Заранее спасибо.
Структура базы данных
"Questions" (idquestion, question)
"Surveys" (idsurvey, idquestion, answers, comments_per_question, survey_number)
функция Update
public function ModifySurveyMulti($answer = array())
{
if(!empty($answer)) {
foreach($answer as $questi => $value ) {
$this->MyDB->Write("UPDATE survey SET(
`idquestion` = '".$questi."',
`answers` = '".$value[0]."',
`comments_per_answer`= '".$_POST["comment"][$questi]."')");
}
}
}
modify_surveyform.php
<th><?php echo $row["questions"];?></th>
<td>
<input type = "text"
name = "answer[<?php echo $row['idquestion'];?>][]"
value = "<?php echo $row["answers"];?>">
</input>
</td>
<td>
<Textarea type = "text"
name = "comment[<?php echo $row['idquestion'];?>]"
cols = "50" rows = "3"/> <?php echo $row["comment"];?
</textarea>
</td>
</tr><?php } ?>
Mydbconnect.php
<?php
// I'm adding my PDO database because yours is deprecated
class DBConnect
{
public $con;
// Create a default database element
public function __construct($host = '',$db = '',$user = '',$pass = '')
{
try {
$this->con = new PDO("mysql:host=$host;
dbname=$db",$user,
$pass, array(
PDO::ATTR_ERRMODE
=> PDO::ERRMODE_WARNING
)
);
}
catch (Exception $e) {
return 0;
}
}
// Simple fetch and return method
public function Fetch($_sql)
{
$query = $this->con->prepare($_sql);
$query->execute();
if($query->rowCount() > 0) {
while($array = $query->fetch(PDO::FETCH_ASSOC)) {
$rows[] = $array;
}
}
return (isset($rows) && $rows !== 0 && !empty($rows))? $rows: 0;
}
// Simple write to db method
public function Write($_sql)
{
$query = $this->con->prepare($_sql);
$query->execute();
}
}?>
Одна из основных причин использования PDO является поддержка параметризованных запросов, и все же вы до сих пор просто конкатенации значения непосредственно из формы. Вы изучали документацию в любой момент? http://php.net/manual/en/book.pdo.php –
Пока вы не показываете нам код '$ this-> MyDB-> Write()', мы не сможем вам помочь. – CodeZombie
Я уже добавил mydbconnect.php, есть все функции pdo, которые я использую на мгновении. – dcft