0

我正在开发一个程序,该程序采用所见即所得编辑器制作的 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>";
?>
4

1 回答 1

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 解决方法。但是,此方法仍可按您的意愿工作。如果在脚本开头完成查询和重定位,则可能会被认为更干净。

于 2013-08-20T02:57:50.087 回答