未定义的偏移量:连接到数据库时在php中为0
我是php新手 运行此脚本时,会收到错误消息: 未定义的偏移量:0 对于行:while($row=mysql\u fetch\u assoc($result)){ echo$row['0']未定义的偏移量:连接到数据库时在php中为0,php,Php,我是php新手 运行此脚本时,会收到错误消息: 未定义的偏移量:0 对于行:while($row=mysql\u fetch\u assoc($result)){ echo$row['0'] <?php if (!$link = mysql_connect('localhost', 'root', '')) { echo 'Could not connect to mysql'; exit; } if (!mysql_se
<?php
if (!$link = mysql_connect('localhost', 'root', '')) {
echo 'Could not connect to mysql';
exit;
}
if (!mysql_select_db('first_db', $link)) {
echo 'Could not select database';
exit;
}
$sql = 'SELECT * FROM users WHERE id = 3';
$result = mysql_query($sql, $link);
if (!$result) {
echo "DB Error, could not query the database\n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
while ($row = mysql_fetch_assoc($result)) {
echo $row['0'];
}
mysql_free_result($result);
?>
为什么语法行['0']
适用于第二个脚本,但不适用于第一个脚本
顺便说一句,我的数据库名为first_db,表名为users。它有3列,分别命名为id、username和password。否。它不起作用的原因实际上是两个因素的组合。首先,使用mysql_Fetch_assoc(),它返回(如上所述)一个关联数组。第二,使用
$row['0']
与$row[0]
不同-第一个检查数组中名为的元素作为字符串,而第二个检查数组中的第一个(数字)键。阅读mysql\u fetch\u assoc()和mysqli\u fetch\u数组()的手册
并查看它们返回的内容。当(1)mysql功能被正式弃用,以及(2)mysqli功能正常工作时,为什么要恢复到mysql功能?
<?php
//Step1
$db = mysqli_connect('localhost','root','','first_db')
or die('Error connecting to MySQL server.');
?>
<html>
<head>
</head>
<body>
<h1>PHP connect to MySQL</h1>
<?php
//Step2
$query = "SELECT * FROM users";
mysqli_query($db, $query) or die('Error querying database.');
//Step3
$result = mysqli_query($db, $query);
//$row = mysqli_fetch_array($result);
while ($row = mysqli_fetch_array($result)) {
echo $row[0] . ' ' . $row[1] . ': '. $row[2] .'<br />';
}
//Step 4
mysqli_close($db);
?>
</body>
</html>