我正在开发一个程序,它接受由WYSIWYG编辑器制作的HTML代码并将其插入数据库,然后将用户重定向到完成的页面,该页面从数据库中读取代码。我可以在phpmyadmin中手动输入代码并且它可以工作但是在PHP代码中它不会覆盖指定ID的代码列中的条目。我提供了PHP代码来帮助您。 PHP没有给我任何解析错误。以下代码有什么不对?
<?php
//POST VARIABLES------------------------------------------------------------------------
//$rawcode = $_POST[ 'editor1' ];
//$code = mysqli_real_escape_string($rawcode);
$code = 'GOOD';
$id = "1";
echo "$code";
//SQL VARIABLES-------------------------------------------------------------------------
$database = mysqli_connect("localhost" , "root" , "password" , "database");
//INSERT QUERY DATA HERE----------------------------------------------------------------
$queryw = "INSERT INTO users (code) VALUES('$code') WHERE ID = '" . $id . "'";
mysqli_query($queryw, $database);
//REDIRECT TO LOGIN PAGE----------------------------------------------------------------
echo "<script type='text/javascript'>\n";
echo "window.location = 'http://url.com/users/" . $id . "/default.htm';\n";
echo "</script>";
?>
答案 0 :(得分:4)
你的问题是mysql INSERT不支持WHERE。将查询更改为:
INSERT INTO users (code) VALUES ('$code')
然后要更新记录,请使用
UPDATE users SET code = '$code' WHERE id = $id
当然,准备好陈述。
此外,mysqli_query要求第一个参数是连接,第二个参数是字符串。你让它逆转了。看这里: http://php.net/manual/en/mysqli.query.php
还应该注意,这种程序应该在输出到浏览器之前运行。如果是这样,您可以使用PHP的标头重新定位而不是这个js变通方法。但是,此方法仍可按您的意愿使用。如果在脚本开头进行查询和重定位,则可能会被认为更清晰。