Mysqli,卡在"或死"和" sqlierror"

时间:2014-11-23 07:08:37

标签: php mysqli dreamweaver wampserver

我在开始会话时遇到了麻烦。这是我的php:

<?php
    session_start();

    $con=mysqli_connect('localhost','root','','pttkhdt');

    if (mysqli_connect_errno()) echo "Failed to connect to MySQL: " . mysqli_connect_error();
    else {
        $a = $_SESSION['a'];
        $knad ='SELECT * FROM admintb WHERE adID=' .$a;
        $naad = mysqli_query($con,$knad);
        $arad = array();
        while($rowad=mysqli_fetch_assoc($naad)) $arad[] = $rowad;
    }
?>

如果我输入,当我尝试测试运行我的网站时,它会显示:

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in...

但如果我修好了这行

$naad=mysqli_query($con,$knad);

分为:

$naad=mysqli_query($con,$knad) or die;

页面会&#34;死&#34;出来并且空白。

2 个答案:

答案 0 :(得分:1)

从它的外观来看,你使用while循环将mysqli_fetch_assoc加载到一个数组中。但是,mysqli_fetch_assoc()已加载数组。

你为什么不试试这个:

<?php
  session_start();
  $con=mysqli_connect('localhost','root','','pttkhdt');
  if ( mysqli_errno($con) ) {
    //Exit stops the rest of the script
    exit( "Failed to connect to MySQL: " . mysqli_error($con) );
  } else {
    $a = $_SESSION['a'];
    $knad = "SELECT * FROM admintb WHERE adID='" . $a . "'";
    $arad = mysqli_fetch_assoc( mysqli_query($con,$knad) );
    if (!$arad) { exit( mysqli_error($con) ); }
  }
?>

您的SQL错误背后的原因可能是您之前的SQL $ knad语句例如adID=justatestvalue,因此您的SQL正在搜索justatestvalue列。确保将实际的陈述用引号括起来。

mysqli_query($con,"SELECT * FROM user WHERE userName='$user'");

答案 1 :(得分:0)

使用mysql_error()检查错误并在此更新错误;

$naad=mysqli_query($con,$knad) or die(mysql_error());

或尝试以下代码

$link=mysql_connect($host,$user,$pwd);
$db = mysql_select_db($dbname,$link);
if(!$db) die (mysql_error());