J'essaie d'enregistrer des titres dans une base de données mysql dans wordpress en permettant des guillemets simples et doubles. Donc, je veux être en mesure d'insérer des chaînes telles que:Insérer des guillemets simples et doubles dans une base de données wordpress
A man's dog walked into the bar
The "main reason" it does not work
It's time to announce "The Show" in an hour
Mon code ressemble par exemple:
$question_id = filter_var($_REQUEST['question_id'], FILTER_SANITIZE_NUMBER_INT);
$feedback_correct = preg_replace("/[^a-zA-Z0-9'\"?_\. !&-]+/","",sanitize_text_field($_REQUEST['feedback_correct']));
$feedback_incorrect = preg_replace("/[^a-zA-Z0-9'\"?_\. !&-]+/","",sanitize_text_field($_REQUEST['feedback_incorrect']));
//preg_replace is to strip out any characters we dont want in the title like "<>|}{[]/"
$data = array(
'feedback_correct' => $feedback_correct,
'feedback_incorrect' => $feedback_incorrect
);
$update_feedback = $eot_quiz->updateQuestion($data, $question_id);
Et la fonction updateQuestion:
public function updateQuestion($data = array(), $id = 0)
{
global $wpdb;
$result = $wpdb->update(TABLE_QUIZ_QUESTION, $data, array('ID' => $id));
if ($result === false)
{
return false;
}
else
{
return true;
}
}
Après le voyage à la base de données , mes cordes ressemblent à:
A man
* chaîne est coupée après les guillemets simples
The "main reason" it does not work
* regardez ok avec des guillemets doubles
It
* chaîne est coupée après la citation unique
Comment puis-je obtenir ces chaînes inséré correctement dans le db? Merci d'avance.
code d'affichage:
<?php
$quiz_question = $eot_quiz->get_question_by_id($question_id);
?>
<div class="bs">
<div class="panel panel-default">
<form method="POST" action="#">
<div class="panel-heading">
<h3 class="panel-title"><?= $quiz_question['quiz_question']?></h3>
</div>
<div class="panel-body">
<div class="form-group">
<label for="feedback_correct">Feedback for correct answer</label>
<input type="text" class="form-control" name="feedback_correct" placeholder="Correct Feedback" value='<?= $quiz_question['feedback_correct']?>'>
</div>
<div class="form-group">
<label for="feedback_incorrect">Feedback for incorrect answer</label>
<input type="text" class="form-control" name="feedback_incorrect" placeholder="Incorrect Feedback" value='<?= $quiz_question['feedback_incorrect']?>'>
</div>
<input type='hidden' name='question_id' value="<?= $question_id ?>" />
<input type='hidden' name='quiz_id' value="<?= $quiz_id ?>" />
<input type='hidden' name='subscription_id' value="<?= $subscription_id ?>" />
<input type='hidden' name='feedback' value="true" />
<button type="submit" class="btn btn-default">Update Feedback</button>
</div>
<div class="panel-footer"><a href="/dashboard/?part=update_quiz_questions&question_id=<?= $question_id?>&quiz_id=<?= $quiz_id?>&subscription_id=<?= $subscription_id ?>" class="btn btn-success pull-right">Take me back to the Question</a><div style="clear:both"></div></div>
</form>
</div>
</div>
[Bobby Tables] (http://bobby-tables.com/) – ctwheels
Non, pas de tables de bobby ici. Le code 'wpdb' utilise les paramètres de liaison appropriés. –
J'ai essayé les tables de bobby: $ result = $ wpdb-> mise à jour (TABLE_QUIZ_QUESTION, $ données, tableau ('ID' => $ id), tableau ('% s', '% s')); même résultat –