我在开始会话时遇到了麻烦。这是我的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;出来并且空白。
答案 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());