0

我正在学习php,现在我被困住了。我有代码必须使用字段 id 和 zagolovok 更新名为 title 的表中的信息,但它没有更新,并且显示没有错误的白屏。

$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 server/login/pass因隐私而改变

4

3 回答 3

1
$_REQUEST[title]   $_REQUEST is an array use $_REQUEST['title'] 
 $query = mysql_query('UPDATE title SET zagolovok = "\'$_REQUEST['title']\'" WHERE id = 5');
于 2012-08-15T10:23:10.140 回答
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并使用强烈推荐的准备好的语句。

于 2012-08-15T10:23:14.017 回答
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 ...

于 2012-08-15T10:24:35.380 回答