PHP表单不会发布

时间:2010-08-30 16:22:29

标签: php mysql forms post

我刚刚实现了mysql_real_escape_string(),现在我的脚本不会写入数据库了。在添加mysql_real_escape_string()之前一切正常:

任何想法??

$name = mysql_real_escape_string($_POST['name']);
$description = mysql_real_escape_string($_POST['description']);
$custid = mysql_real_escape_string($_SESSION['customerid']);

mysql_send("INSERT INTO list 
              SET id = '',  
                  name = '$name', 
                  description = '$description', 
                  custid = '$custid' ");

5 个答案:

答案 0 :(得分:2)

什么是mysql_ 发送功能?
如果将其更改为mysql_query();

该怎么办?

答案 1 :(得分:1)

应该很容易弄清楚发生了什么。

Fist,而不是将您正在构建的查询发送到数据库,将其回显(或记录),并查看您实际发送到数据库的内容。

如果这不明显,请看看mysql_error()必须说什么。

答案 2 :(得分:0)

mysql_real_escape_string应该将数据库连接作为第二个参数传递,因为它询问数据库需要转义哪些字符。

$connection = mysql_connect(HOST, USERNAME, PASSWORD);
$cleanstring = mysql_real_escape_string("my string", $connection);

答案 3 :(得分:0)

理解如何使用某些功能的典型失败...... 你只是在原始输入数据上使用mysql_real_escape_string。你听说过santizing / validating输入吗? mysql_real_escape_string对数字没有意义。如果您已将变量验证为数字,则无需将其转义。

mysql_send是mysql_query的别名吗? 使用调试代码,在echo mysql_error();之后添加mysql_send(...)

答案 4 :(得分:0)

       mysql_connect("localhost", "username", "password") or die(mysql_error());
       mysql_select_db("database") or die(mysql_error());
       $name = mysql_real_escape_string($_POST['name']);
       $description = mysql_real_escape_string($_POST['description']);   
       $custid = mysql_real_escape_string($_SESSION['customerid']);

       //If you doing Update use this code
       mysql_query("UPDATE list SET id = '', name = '$name', description = '$description' WHERE custid = '$custid' ") or die(mysql_error());
       //OR if you doing Insert use this  code.
       mysql_query("INSERT INTO list(name, description, custid) VALUES('$name', '$description', '$custid')") or die(mysql_error());
       //If custid is Integer type user $custid instead of '$custid'.                 

如果要根据custid更新列表中的记录,请使用UPDATE命令;如果是insertinf,则记录到列表中使用INSERT命令。