PHP 脚本发布到数据库不起作用


PHP script posting to db not working

我确定这是非常基本的,但我是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 的表根本没有用。称它为它所包含的内容。