用准备语句获取mysqli_num_rows()的相同效果,是否需要在我的例子中? tipo_personale ='D'是静态的
对不起,麻烦了,我一直试图解决这个问题。 我alrely搜索,但我真的不知道这是什么搜索,无论是在StackOverflow或在PHP文档..用准备语句获取mysqli_num_rows()的相同效果,是否需要在我的例子中? tipo_personale ='D'是静态的
我编码一个小表格,其中有thag应该由dinamically填充由PHP采取来自phpmyadmin数据库的行。
现在不使用准备好的语句它的伟大工程:
<div class="form-group"> <label class="control-label col-sm-3" for="ref">
<span class="asteriskField">
*
</span>
Referente/<br>Referent
</label>
<div class="col-sm-9">
<select class="form-control" id="ref" name="ref">
<option >
Scegliere un elemento/Select an element
</option>
<!-- populate value with php -->
<?php
$sel="SELECT id_persona, cognome, nome FROM personale WHERE tipo_personale='D' ORDER BY cognome,nome ASC";// D is permanent
$results=mysqli_query($conn, $sel);
$numrows = mysqli_num_rows($results);
if ($numrows == 0) {
?>
<script>alert("empty!");</script>
<?php
}
else{
for ($x = 0; $x < $numrows; $x++) {
$resrow = mysqli_fetch_row($results);
$id = $resrow[0];
$cognome = $resrow[1];
$nome = $resrow[2];
$referente="$cognome $nome";
echo "<option value='" .$referente . "'>" . $cognome . " " . $nome . "</option>";
}
}
?>
</select>
</div>
</div>
是否有必要在这里使用准备好的发言? 如果是,我怎么能达到_mysqli_fetch_row_相同的结果?
我已经试过:
$tipo = 'D'; $query="SELECT id_persona, cognome, nome FROM personale WHERE
tipo_personale=? ORDER BY cognome,nome ASC";
$stmt = $conn->prepare($query);
$stmt->bind_param("s", $tipo);
$results=$stmt->execute();
$stmt->store_result();
$stmt->get_result();
$numrows=$stmt->num_rows;
但它仅适用于$ numRows行,$ resrow = mysqli_fetch_row($结果)不retrive数据。谢谢。
回答:
如果您信任您的数据(可能永远不会),您可以跳过使用准备好的语句从数据库中提取数据 - 但必须在每次插入数据时使用它。
它看起来像这样。
$stmt = $this -> db -> prepare("INSERT INTO x (col1, col2, col3, col4) VALUES (?,?,?,?)"); $stmt -> bind_param("iiss", $val_for_col1, $val_for_col2, $val_for_col3, $val_for_col4);
if($stmt -> execute()){
$stmt -> close();
return true;
}else{
// error...
}
或一个选择,如果你不信任你的数据:
以上是 用准备语句获取mysqli_num_rows()的相同效果,是否需要在我的例子中? tipo_personale ='D'是静态的 的全部内容, 来源链接: utcz.com/qa/257683.html