2012-05-29 6 views
0
// 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 
)); 




?> 
+1

как "случайный" это информация? –

+0

Извините, я не думал, когда написал эту часть. Перечитайте его. –

+0

Просто, если вы отправляете назад целые истории, возможно, POST будет более подходящим, чем GET, и (это только я). Я бы назвал параметр «storyid» вместо «story», чтобы сохранить бит беспорядка. –

ответ

0

Fix ваш SQL UPDATE syntax

$sql = "UPDATE tool SET title=:title, details=:details WHERE id = :postid"; 
$q = $conn->prepare($sql); 
$q->execute(array(
    ':details'=>$details, 
    ':title'=>$title, 
    ':postid' => $post 
)); 
+0

Это работает как запланировано, но теперь я вернулся к своей старой ошибке. Всякий раз, когда я редактирую сообщение, он потеряет заголовок и детали, только один раз. В первый раз, когда я редактирую сообщение, я теряю всю информацию, но в остальное время все будет хорошо. Любая идея почему? –

+0

ваша ошибка где-то еще, я думаю, вы не передали новые значения для отредактированного сообщения в форме или что-то подобное .. сложно сказать без кода, возможно, задайте новый вопрос. – Vytautas

+0

Отредактировано, если вы хотите посмотреть. –

Смежные вопросы