SQL数据库没有插入数据?

时间:2013-08-20 02:53:35

标签: php mysql

我正在开发一个程序,它接受由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>";
?>

1 个答案:

答案 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变通方法​​。但是,此方法仍可按您的意愿使用。如果在脚本开头进行查询和重定位,则可能会被认为更清晰。