用准备语句获取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

回到顶部