[英]How do you use PHP variables in mysqli query on the SELECT side?
我有以下查询:
$mysqli -> prepare('SELECT $whatever FROM county_rates WHERE `id`=?')
由于某些原因,这不起作用。 我知道$ whatever是正确的,因为我是在语句之前定义它。 当我用实际的列名替换$ whatever时,它可以工作,但使用变量时,则不能。
我也尝试过:
$mysqli -> prepare('SELECT ? FROM county_rates WHERE `id`=?')
然后定义? 在bind_param中,所有返回的都是列名称本身。
您需要使用双引号将变量扩展
$mysqli -> prepare("SELECT $whatever FROM county_rates WHERE `id`=?")
当前,您在寻找$ what而不是变量的内容。
您应该熟悉手册的以下部分: 字符串
试试这个代码,我自己尝试过,希望对您有用
<?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;
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.