[英]Saving a record from php and mysql
我正在尝试从查询中保存一些值:
$query = mysqli_query($conex, "SELECT * FROM acceso WHERE usuario = '$user' AND contrasenia = '$pass'");
if (mysqli_num_rows($query) > 0)// mysqli_num_rows > 0
{
$fila = mysql_fetch_assoc($query)
$_SESSION["id_usuario_cms"] = $fila ['idacces'];
$_SESSION["usuario_cms"] = $fila ['user'];
echo '<script>location.href = "admin/index.php"</script>';
}
但这不起作用。 有任何想法吗?
我看到一个潜在的问题和一个明显的问题。
可能是您是否已开始会话。
session_start();
必须在所有使用会话的文件中使用; 您的问题中没有提到。 如果它不属于您的文件,请添加它。
显而易见的是,您正在使用mysql_
函数与显示的其余代码mysqli_
。 这些不同的功能不会相互混合。
mysql_fetch_assoc
必须与其mysqli_
等效, mysqli_fetch_assoc
。
您应该为此使用mysqli_fetch_array
。
为了使用mysqli_fetch_assoc
,应该在while
循环中设置它。
手册中的示例:
/* fetch associative array */
while ($row = mysqli_fetch_assoc($result)) {
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}
如果您想使用mysqli_fetch_array
:
手册中的示例:
/* associative array */
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
将错误报告添加到文件顶部,这将有助于发现错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
在mysqli_query()
包含or die(mysqli_error($conex))
mysqli_query()
。
旁注:错误报告仅应在登台进行,而不应在生产过程中进行。
您必须同时使用mysqli_fetch_array($ query)和 session_start()
$query = mysqli_query($conex, "SELECT * FROM acceso WHERE usuario = '$user' AND contrasenia = '$pass'");
if (mysqli_num_rows($query) > 0)// mysqli_num_rows > 0
{
$fila = mysqli_fetch_array($query)
$_SESSION["id_usuario_cms"] = $fila ['idacces'];
$_SESSION["usuario_cms"] = $fila ['user'];
echo '<script>location.href = "admin/index.php"</script>';
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.