我在一个html文件(扩展名为.php)中运行它,但是当我检查元素时,iframe没有出现。错误报告显示va5和bind_param存在问题。当我打电话给这个php时,我并不总是有一个变量5。我怎么能解决这个问题?
<?php
$va1 = $_GET['variable1'];
$va2 = $_GET['variable2'];
$va3 = $_GET['variable3'];
$redetails = NULL;
$redetails2 = NULL;
$redetails = $_GET['rdetails'];
$redetails2 = $_GET['redetails2'];
$stmt = $mysqli->prepare("SELECT id FROM idlist WHERE var1 = ? && var2 = ? && var3 = ? && var4 = ? && var5 = ?");
//failing
$stmt->bind_param('sssss', $va1, $va2, $va3, $va4, $va5);
$stmt->execute();
$result = $stmt->get_result();
//failing
echo $result[0];
//failing
echo '<iframe src="https://drive.google.com/file/d/' . $result[0] . '/preview" width="850" height="1150"></iframe>';
?>
答案 0 :(得分:0)
您必须根据变量的数量更改查询。解决方案可能是
<?php
$parms = array(
'var1' => $_GET['variable1'],
'var2' => $_GET['variable2'],
'var3' => $_GET['variable3'],
);
if (isset($_GET['variable4'])) $parms['var4'] = $_GET['var4'];
if (isset($_GET['variable5'])) $parms['var5'] = $_GET['var5'];
$stmt = $mysqli->prepare('SELECT id FROM idlist WHERE '. implode(' = ? && ', array_keys($parms)). ' = ?');
foreach($parms as $value) $stmt->bind_param('s', $value);