// query
$sql = "INSERT INTO tool (title,details) VALUES (:title,:details) ";
$q = $conn->prepare($sql);
$q->execute(array(':details'=>$details,
':title'=>$title));
У меня были проблемы с этим весь день, я, наконец, добрался до этого. Если я использую вышеуказанный код, он просто добавит новое сообщение в базу данных. Это, как предполагается, будет использоваться для редактирования поста, поэтому, очевидно, мне нужно изменить существующую информацию:Правильный синтаксис php
// query
$post = htmlspecialchars($_GET['story']);
$sql = "UPDATE tool SET (title,details) VALUES (:title,:details) WHERE id = $post";
$q = $conn->prepare($sql);
$q->execute(array(':details'=>$details,
':title'=>$title));
«ID» представляет собой столбец в базе данных. Мне нужно это, чтобы обновить заголовок и детали для этой конкретной записи. Я просто не знаю, какой синтаксис я должен использовать здесь.
Спасибо за любые ответы!
===== Второй вопрос:
Теперь я вернулся к своей старой ошибке. Всякий раз, когда я редактирую сообщение, он потеряет заголовок и детали, только один раз. В первый раз, когда я редактирую сообщение, я теряю всю информацию, но в остальное время все будет хорошо. Любая идея почему? Heres код:
Форма со страницы редактирования (может или не может быть важно, я не знаю):
$name = $_SESSION['Username'];
if (in_array($name, $allowedposters)) {
$results = mysql_query("SELECT * FROM tool WHERE id = $post");
while($row = mysql_fetch_array($results)){
$title= $row['title'];
$details= $row['details'];
$date= $row['date'];
$author= $row['author'];
$id= $row['id'];
echo "<a href=story.php?id=";
echo $post;
echo ">Cancel edit</a> <br><br><b>";
echo $title;
echo "</b> <br><br>";
echo '
<form action="edit-new.php?story=';
echo $id;
echo '" method="post" enctype="multipart/form-data">
<textarea rows="1" cols="60" name="title" wrap="physical" maxlength="100">';
echo $title;
echo '</textarea><br>';
?>
<textarea rows="30" cols="60" name="details" wrap="physical" maxlength="10000">
<?php
echo $details;
echo '</textarea><br>';
echo '<label for="file">Upload featured image:</label><br>
<input type="file" name="file" id="file" />';
echo'<br><input type="submit" />';
}
} else {
echo "Not enough permissions.";
}
?>
Вот SQL, вставив в БД:
<?php
$post = htmlspecialchars($_GET['story']);
$title = mysql_real_escape_string($_POST['title']);
$details = mysql_real_escape_string($_POST['details']);
echo "B<br>";
echo $_POST['title'];
echo '<br>';
echo $_POST['details'];
echo $post;
echo "<br><br>";
// configuration
$dbtype = "mysql";
$dbhost = "localhost";
$dbname = "zzzz";
$dbuser = "zzzzz";
$dbpass = "zzzzzz";
// database connection
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);
// new data
// query
$sql = "UPDATE tool SET title=:title, details=:details WHERE id = :postid";
$q = $conn->prepare($sql);
$q->execute(array(
':details'=>$details,
':title'=>$title,
':postid' => $post
));
?>
как "случайный" это информация? –
Извините, я не думал, когда написал эту часть. Перечитайте его. –
Просто, если вы отправляете назад целые истории, возможно, POST будет более подходящим, чем GET, и (это только я). Я бы назвал параметр «storyid» вместо «story», чтобы сохранить бит беспорядка. –