php
  • mysql
  • 2012-08-15 68 views 0 likes 
    0

    我正在学习php,现在我被卡住了。我有代码必须更新信息在表中称为标题与字段id和zagolovok,但它不更新,并显示白屏没有错误。用php更新mysql中的信息

    $db = mysql_connect('server', 'login', 'passr'); 
    mysql_select_db(u20221, $db); 
    $query = mysql_query("UPDATE title SET zagolovok = '$_REQUEST[title]' WHERE id = 5"); 
    mysql_close($db); 
    

    PS服务器/登录/通行证由于改变隐私

    +0

    什么是错误检查mysql_error(); – 2012-08-15 10:22:25

    +1

    欢迎使用堆栈溢出。请不要打扰学习'mysql_ *'函数,它们不再被维护,并且社区已经开始[弃用过程](http://goo.gl/KJveJ)。相反,您应该了解[准备好的语句](http://goo.gl/vn8zQ)并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli的)。如果你不能决定,[本文](http://goo.gl/3gqF9)将有助于选择。如果你想学习,[这里是一个很好的PDO相关教程](http://goo.gl/vFWnC)。 – vascowhite 2012-08-15 10:23:19

    +0

    阅读FAQ部分http://stackoverflow.com/tags/php/info以了解如何打开错误报告。 – vascowhite 2012-08-15 10:29:06

    回答

    1

    试试这个

    $db = mysql_connect('server', 'login', 'passr'); 
    if(!$db) die("no connection"); 
    mysql_select_db(u20221, $db); 
    $query = mysql_query("UPDATE title SET zagolovok = '".$_REQUEST['title']."' WHERE id = 5"); 
    mysql_close($db); 
    

    标题是你的表名或您的列??? 语法是 UPDATE table SET column = value WHERE ...

    +0

    标题它的名称我的表,zagolovok是柱 – 2012-08-15 10:28:32

    1
    $_REQUEST[title] $_REQUEST is an array use $_REQUEST['title'] 
    $query = mysql_query('UPDATE title SET zagolovok = "\'$_REQUEST['title']\'" WHERE id = 5'); 
    
    1

    打开错误报告,它会告诉你,你需要包括在你的数据库名称引号。

    要做到这一点,你的指数(或执行文件)的顶部添加:

    error_reporting(E_ALL); 
    

    并确保它在你的浏览器中可见:

    ini_set('display_errors', 'On'); 
    

    另外值得一提的是,你的代码很容易受到SQL Injection,以解决这个问题(和您的其他未定义的常量):

    $safeTitle = mysql_real_escape_string($_REQUEST['title']); 
    $query = mysql_query("UPDATE title SET zagolovok = '$safeTitle' WHERE id = 5"); 
    

    或者,您可以切换到PDO,并使用强烈建议的准备好的语句。

    +0

    这对我很好,我认为休息也是,但由于我自己的注意力不集中,我用'标题'而不是'标题',这是我的数据库中正确的行名称 – 2012-08-15 10:40:09

    相关问题