Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未定义的偏移量:连接到数据库时在php中为0_Php - Fatal编程技术网

未定义的偏移量:连接到数据库时在php中为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新手

运行此脚本时,会收到错误消息:

未定义的偏移量: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_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>