Select语句中的PHP变量

时间:2010-08-13 10:48:09

标签: php mysql html variables select

我已经编写了这个正在运行的PHP脚本,现在我想将行名更改为变量(不确定行是否正确),我的意思是来自 select <的“名称” STRONG>名称 的... 我几乎尝试了一切,但没有给我正确的结果。 我知道如何在像“('。$ var。'”)这样的语句中使用变量这是正常的。

<?php
require_once 'config.php';

$id = $_GET["id"]; //ID OF THE CURRENT CONTACT
$user = $_GET["user"];  //ID OF THE CURRENT USERS

$query = mysql_query("SELECT name FROM contacts WHERE contact_id='". mysql_real_escape_string( $id ) ."' and user_id='1';");

$retval = mysql_fetch_object($query)->name;

$retval = trim($retval);
echo $retval;
?>

7 个答案:

答案 0 :(得分:4)

这不容易吗?

$sql_insert = 
"INSERT INTO customers (        
`name`,
`address`,
`email`,
`phone`
) 
VALUES (        
'$name',
'$address',     
'$email',
'$phone'
)";

答案 1 :(得分:3)

这是你要找的吗?甚至你的德语问题对我来说也不是那么清楚:

$field = 'name';
$query = mysql_query("SELECT $field FROM contacts WHERE contact_id='". mysql_real_escape_string( $id ) ."' and user_id='1';");
$retval = mysql_fetch_object($query)->$field;

答案 2 :(得分:3)

你可以使用这样的东西。目前我假设您只返回一行,并且只想使用一个字段。

<?php
require_once 'config.php';

$id = $_GET["id"]; //ID DES DERZEITIGEN KONTAKTES
$user = $_GET["user"];  //ID DES DERZEITIGEN USERS

//Use variable inside closures `` and just in case escape it, depends how you get variable
$query = mysql_query("SELECT `".mysql_real_escape_string($variable)."` FROM contacts WHERE contact_id='". mysql_real_escape_string( $id ) ."' and user_id='1';");


if (!$query) {
    echo 'Could not run query: ' . mysql_error();
    exit;
}
$row = mysql_fetch_row($query); //Retriev first row, with multiple rows use mysql_fetch_assoc
$retval = $row['0']; //Retriev first field

$retval = trim($retval); 
echo $retval;
?>

答案 3 :(得分:2)

  • 请用英文发布。其他人都这样做。
  • 尝试使用不同的fetch方法 - 获取关联数组,然后使用dynamic参数检索所需的任何列。
  • 您是否考虑过使用PDO?

答案 4 :(得分:1)

由于您使用“行”这个词,我相信您(无意中)会引起混淆。根据您的示例判断,您的意思是字段/列。听起来你希望指定要使用变量选择的字段,这些变量可以通过任何这些方法来完成......

$fields = "name, age";

$sql = "SELECT $fields FROM table";
$sql = "SELECT {$fields} FROM table";
$sql = "SELECT ".$fields." FROM table";

NB 在$ fields元素中设置安全日期非常重要,我建议使用允许值的白名单,例如。

// assuming $_POST['fields'] looks something like array('name','age','hack');
$allowed = array('name', 'age');
$fields = array();

foreach ($_POST['fields'] as $field) {
   if (in_array($field, $allowed)) {
      $fields[] = $field;
   }
$fields = implode(', ', $fields);

答案 5 :(得分:0)

这不会起作用吗?

$result = mysql_fetch_array($query);

echo trim($result['name']);

答案 6 :(得分:0)

你永远不应该把变量放到字段列表中 如果想要一个变量字段名称,请选择* 然后使用您的变量来获取特定字段

<?php
require_once 'config.php';

$id = mysql_real_escape_string($_GET["id"]); //ID DES DERZEITIGEN KONTAKTES
$user = $_GET["user"];  //ID DES DERZEITIGEN USERS

$query  = "SELECT * FROM contacts WHERE contact_id='$id' and user_id='1'";
$result = mysql_query($query) or trigger_error(mysql_error().$query);

$row = mysql_fetch_array($result);

//and finally
$fieldname = "name";
$retval = $row[$fieldname];

echo $retval;
?>