我是php的新手。
当我运行此脚本时,我收到错误消息:
未定义的偏移量:0
代码:while($ row = mysql_fetch_assoc($ result)){ echo $ row ['0'];
<?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);
?>
这是连接到数据库的另一个脚本,这里语法$row['0']
正在运行。
<?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>
为什么语法row['0']
适用于第二个脚本但不适用于第一个脚本?
btw我的数据库名为first_db,表名为users。它有3列;命名id,用户名和密码。
答案 0 :(得分:0)
没有。它不起作用的原因实际上是两件事的组合。首先,使用mysql_Fetch_assoc()返回(如提到https://stackoverflow.com/users/6946846/andrew-wilson)关联数组。其次是你使用的style
与$row['0']
不同 - 第一次用名称 0作为字符串检查数组中的元素,而第二次检查数组中的第一个(数字)键。