更新语法和传递字符串

时间:2014-07-13 01:32:10

标签: php mysql

在使用字符串更新表格行时,我在使用Update语法时遇到了问题。我将发布以下代码,然后解释我的问题:

$query = "SELECT * FROM foo WHERE bar = '$id'";
$results = mysql_query($query);
$rows = mysql_num_rows($results);
for ($j = 0 ; $j < $rows ; ++$j) {
    $entity_id=mysql_result($results,$j,'entity_id');
}

//$entity_id = "129";

if ($_POST['submit']) {
        $text = mysql_real_escape_string($_POST['comments']); 
        $query = "UPDATE field_data_body SET body_value='$text' WHERE entity_id='$entity_id'";
        mysql_query($query) or die ('Error updating database' . mysql_error());
    }

?>

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <textarea name="comments">Example Comment</textarea>
    <input name="submit" type="submit" value="submit" />
</form>

这里简要介绍了代码的作用。我首先从表foo请求$ entity_id的值。然后,我使用文本区域和提交按钮更新不同的表格行。

我的问题在第12行:

$query = "UPDATE field_data_body SET body_value='$text' WHERE entity_id='$entity_id'";

如果$ entity_id直接传递给此行,则该行不会更新。如果我将一个整数分配给$ entity_id,(第8行没有注释),该行将更新。我已经检查过以确保$ entity_id在到达脚本的提交部分之前被赋值;它返回129,(echo&#34; $ entity_id&#34 ;;输出为129)。为什么我不能在不分配整数的情况下传递字符串?

编辑:我发现了问题发生的地方。问题出在第18行,其中调用了action属性。我删除了php,并将其替换为#。我不完全确定为什么这是解决问题的方法,但是你有它。感谢下面的人提出他们的建议和帮助,我很感激!

0 个答案:

没有答案