从php和mysql保存记录

时间:2015-03-27 22:24:36

标签: php 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>';
}

但它不起作用。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

我看到一个潜在的问题和一个明显的问题。

如果您已经开始会话,那么可能性很大。

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"]);

error reporting添加到文件的顶部,这有助于查找错误。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

or die(mysqli_error($conex))包括在mysqli_query()

旁注:错误报告应仅在暂存时完成,而不是生产。

答案 1 :(得分:1)

你必须使用 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>';
    }