你如何在SELECT端的mysqli查询中使用PHP变量?

时间:2014-02-04 03:02:12

标签: php mysqli

我有以下查询:

$mysqli -> prepare('SELECT $whatever FROM county_rates WHERE `id`=?')

出于某种原因,这不起作用。我知道$ what是正确的,因为我正在声明之前定义它。当我用实际的列名替换$ whatever时它可以工作,但是使用变量它没有。

我也尝试过:

$mysqli -> prepare('SELECT ? FROM county_rates WHERE `id`=?')

然后定义?在bind_param中,所有返回的都是列名本身。

2 个答案:

答案 0 :(得分:1)

你需要使用双引号来扩展变量

$mysqli -> prepare("SELECT $whatever FROM county_rates WHERE `id`=?")

目前您正在寻找 $ whatever 而不是变量的内容。

您应该熟悉本手册的这一部分:Strings

答案 1 :(得分:0)

试试这段代码,我自己试了一下,希望它对你有用

<?php
$hostname = "your host";
$username = "username";
$password = "password";
$database = "database name";
$mysqli = new mysqli($hostname, $username, $password, $database);

//test connection
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

//declaring variable
$sql='name';

$prev=$mysqli->prepare("SELECT $sql FROM cs_product WHERE id=?");
    /*The types of data that can be bound [in bind_param()] are:
   i – integer
   d – double
   s – string
   b – blob
    */
$prev->bind_param('i',$_GET['pid']);
$prev->execute();
$prev->bind_result($name);
$prev->fetch();
$prev->close();

//showing the result
echo $name;

?>