我使用prepare
,bind_param
和execute
语句来查询我的数据库并只获取第一列。在php中,我如何将第一个返回值存储为字符串?
在这个返回值的示例中,我希望将value 1
存储为字符串。
value 1
value 2
value 3
实际代码:
//connect to database
$var1 = a;
$var2 = b;
$var3 = c;
$var4 = d;
$var5 = e;
$stmt = $mysqli->prepare("SELECT id FROM id_list WHERE variable1 = ? && variable2 = ? && variable3 = ? && variable4 = ? && variable5 = ?");
$stmt->bind_param('sssss', $var1, $var2, $var3, $var4, $var5);
$stmt->execute();
//How would I get the result here?
$stmt->bind_result($result);
echo $result;
答案 0 :(得分:1)
此代码将完成您的代码并检索您需要的所有值。
您可以参考PHP Documentation了解更多信息
然后你可以用$ result [0];
替换while 注意:请勿忘记替换database
连接的值。您的正确价值观:'my_user'
,'my_password'
和'my_database'
。
<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_database');
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$stmt = $mysqli->prepare("SELECT id FROM id_list
WHERE
variable1 = ? &&
variable2 = ? &&
variable3 = ? &&
variable4 = ? &&
variable5 = ?");
$stmt->bind_param('sssss', $var1, $var2, $var3, $var4, $var5);
$var1 = a;
$var2 = b;
$var3 = c;
$var4 = d;
$var5 = e;
/* execute prepared statement */
$stmt->execute();
$stmt->bind_result($result);
$stmt->execute();
echo 'Results:' . PHP_EOL;
while($stmt->fetch()){
echo $result . PHP_EOL;
}
$stmt->close();
/* close connection */
$mysqli->close();
?>
答案 1 :(得分:0)
如果您可以提供一些代码示例,它可以提供帮助。 无论如何我假设你将db结果变成一个数组。 所以例如$ myDBresults应该是一个数组。 然后,您可以将其作为字符串in this way保存到变量中:
$ myVar =(string)$ myDBresults [0]; //强制转换为字符串第一个元素。