我确定这是非常基本的,但我是php的新手。 有人可以告诉我为什么这段代码不会写入表吗? 我只是简单地希望表单更新数据库中的表。 除了表中的数据没有被覆盖之外,一切都有效。 任何帮助将不胜感激! 谢谢。
<?php
$username="username";
$password="password";
$dbname="database";
$usertable="table";
$connect = @mysql_connect($hostname, $username, $password)or die
("cannot connect to db");
mysql_select_db($dbname);
$show=$_POST['show'];
$pro=$_POST['pro'];
$twmo=$_POST['twmo'];
mysql_query("INSERT INTO $usertable VALUES
('$show','pro','$twmo')" );
mysql_close($connect);
header("Location: http://www.myhomepage.com");
?>
首先,
-
您的代码容易受到 SQL 注入的影响。
恶意用户可以轻松清除整个表。 -
你甚至不应该使用
mysql_*
!
这是弃用和糟糕的风格!去找一个mysqli
或PDO的教程,不要转发2008年的文章。
关于实际问题,请尝试自己进行一些调试。您没有检查任何查询是否成功。执行查询时,mysql_query()
失败时返回资源或FALSE
。检查是否发生这种情况,以便您可以找出错误的确切位置以及它正在使用什么mysql_error()
。
如果你的表实际上被称为table
,那么这就是问题所在。 table
是一个保留关键字。你可以通过用刻度'封装它来修复它,但实际上你应该改变它的名字。拥有一个名为 table 的表根本没有用。称它为它所包含的内容。