我试图从表中获取一个简单单元格的字符串。 iv这样做(没有准备陈述):
if($result_ur = mysqli_query($conn_ur, $sql_log)) {
/* this is the problem */
$row = mysqli_fetch_array($result_ur);
/* here finishes my problem*/
$lvl = $row['lvl'];
$nombre = $row['nombre'];
$username =$row['username'];
$email = $row['email'];
/*blablablabla more variables*/
echo $username." <br>".$email."<br>";
mysqli_free_result($result_ur);
//-- ELSE DE NUM ROWS
它就像一个魅力!但现在我读了关于sql注射的内容,所以朋友告诉我(出于安全原因)我可以通过“准备语句”来做到这一点,所以我可以逃避注射。
im REALY丢失iv完成所有iv读取,没有... 我的服务器不允许get_result();所以即时绑定结果如此
<?php
include dirname(__FILE__)."/conect_reg.php";
$nombre = $_GET['nombre'];
echo "variable ".$nombre.", working?<br>";
if($nombre) {
$checkuser = $conn_reg->prepare ("SELECT * FROM `usus` WHERE `usuario` = ?");
$checkuser->bind_param("s", $nombre);
$checkuser->execute();
$checkuser->store_result();
$checkuser_rows = $checkuser->num_rows;
/* Here is the problem */
if($checkuser != 0) {
$checkuser_res = $checkuser->bind_result($id_d,$nombre_d,$paterno_d,$materno_d,$usuario_d,$pass_d,$email_d,$lvl_d,$telefono_d,$fecha_d,$code_d,$active_d,$profileimg_d);
return $checkuser_res;
$row = fetch($checkuser_res);
/* Here finish the problem */
}
}
echo "working?<br>";
?>
它适用于“bind_result”,(说实话,我不知道我在做什么,我就像那个用电脑狗的模因)。
我需要的是使用相当于`echo $ row ['user'];像mysqli_fetch_array
或
if ($row['user'] = $user){
echo "that ";
}
但我不知道如何使用“准备语句”和“bind_result”来实现。 编辑:提出更全面的问题。
答案 0 :(得分:0)
bind_result
调用按$row['user']
语句列的顺序将SELECT
分配给单个变量,而不是与mysqli_fetch_array
一起使用的数组形式。
等效功能如下:
$checkuser = $conn_reg->prepare ("SELECT `id`, `nombre`, `paterno`, `materno`, `usuario`, `pass`, `email`, `lvl`, `telefono`, `fecha`, `code`, `active`, `profileimg` FROM `usus` WHERE `usuario` = ?");
$checkuser->bind_param("s", $nombre);
$checkuser->execute();
$checkuser->bind_result($id_d,$nombre_d,$paterno_d,$materno_d,$usuario_d,$pass_d,$email_d,$lvl_d,$telefono_d,$fecha_d,$code_d,$active_d,$profileimg_d);
if ($checkuser->fetch()) {
echo $usuario_d . " Hello";
}