【发布时间】:2014-09-25 19:19:51
【问题描述】:
我是 PHP 新手。我想在另一个表中创建一条新记录,但只返回一个新变量。我试过以下:
$user_id = mysql_real_escape_string($_POST['user_id']);
$user_name = mysql_query("SELECT user_name FROM accept WHERE user_id=".$user_id." ");
$row1 = mysql_fetch_array($user_name);
$server = mysql_query("SELECT server FROM accept WHERE user_id=".$user_id." ");
$row2 = mysql_fetch_array($server);
$url = mysql_query("SELECT link FROM accept WHERE user_id=".$user_id."");
$row3 = mysql_fetch_array($url);
$lpoints = mysql_real_escape_string($_POST['lpoints']);
我的结果是这样的。
【问题讨论】:
-
mysql_fetch_array()返回一个数组,而不是一个标量值。您直接插入这些数组,PHP 表示为Array。你的意思是做$row3 = mysql_fetch_array($url); $url = $row3['url'];之类的事情但是,你应该在一个查询中得到所有这些。SELECT user_name, server, link FROM accept WHERE user_id = $user_id -
例如使用
var_dump($row1)来查看返回的样子。 -
现在,话虽如此,不应该使用
mysql_*()函数编写新代码。它们已被弃用,并将很快从 PHP 中删除。相反,您应该使用准备好的语句开始使用 PDO 或 MySQLi。有关两者的实际示例,请参阅this question。 This excellent PDO tutorial 将 PDO 置于mysql_*()函数的上下文中(如果您已经熟悉这些函数)。