2012-11-16 50 views
0

似乎无法通过更新使用PHP HTML表单我的SQL,谁能帮PHP表单更新数据库,不能正常工作

if (isset($_POST['update'])) { 
    $UpdateQuery = "UPDATE nmc_cd, nmc_category, nmc_publisher SET " . 
       "nmc_cd.CDTitle='$_POST[CDTitle]', " . 
       "nmc_cd.CDYear='$_POST[CDYear]', " . 
       "nmc_cd.CDPrice='$_POST[CDPrice]', " . 
       "nmc_category.catDesc='$_POST[catDesc]', " . 
       "nmc_publisher.pubName='$_POST[pubName]' " . 
       "WHERE CDID='$_POST[CDID]'"; 
} 

是我的SQL查询的问题?

+6

你担心如何修复更新之前,你应该担心固定张开[SQL注入洞](http://bobby-tables.com)之前,你的服务器被丢弃。 –

+0

其学校项目 –

+1

良好的编程习惯应该尽早开始。你的小学项目可能会成为下一个谷歌,丑陋的疣和所有。 –

回答

0

尝试从您的php页面打印出sql查询,将其复制并直接在数据库上运行。它成功了吗?

0

那么,在你的代码中,你从来没有真正执行过查询(使用mysql_query($query_string))。另外,如果您的if语句错过了关闭}。如果这一切都很好,那么你的SQL查询看起来不错,尽管我会尝试运行它对数据库(你的插入字符串),以确保生成的SQL是好的。

您还需要通过mysql_real_escape_string传递表单变量以确保您避免SQL注入攻击(或者您的情况只是格式错误的SQL)。请参阅docs

+0

你的意思是这个 mysql_query($ UpdateQuery,$ con); }; –

+0

如果你想更明确,那么肯定。否则,将使用上次打开的连接。另外,我只是举了一个例子......我认为正确的使用方法是'mysqli_query'或类似的东西。 – 2012-11-16 17:12:56

0

尝试

if (isset($_POST['update'])){ 
$UpdateQuery = "UPDATE nmc_cd, nmc_category, nmc_publisher SET nmc_cd.CDTitle='"; $UpdateQuery .= $_POST[CDTitle]."', nmc_cd.CDYear='".$_POST[CDYear]."', nmc_cd.CDPrice='"; $UpdateQuery .= $_POST[CDPrice]."',nmc_category.catDesc='"; 
$UpdateQuery .= $_POST[catDesc]."',nmc_publisher.pubName='"; 
$UpdateQuery .= $_POST[pubName]."' WHERE CDID='".$_POST[CDID]."'"; //run query 
} 

或只是所有邮政变量转移到$something并使用该查询里面

+0

使用此代码,它仍然没有实际更新任何东西 –