好的,这是有效的:
mysql_select_db("news");
$newsarr = mysql_fetch_array(mysql_query("SELECT * FROM newsByDate ORDER BY date DESC"));
echo var_dump($newsarr);
它返回这个:
array (size=6)
0 => string '140425-20:43:43' (length=15)
'Date' => string '140425-20:43:43' (length=15)
1 => string 'dfghfghdfg' (length=10)
'Description' => string 'dfghfghdfg' (length=10)
2 => string 'Enter text, media link or upload image' (length=38)
'Media' => string 'Enter text, media link or upload image' (length=38)
这不起作用:
function newstable()
{
mysql_select_db("news");
$newsarr = mysql_fetch_array(mysql_query("SELECT * FROM newsByDate ORDER BY date DESC"));
return var_dump($newsarr);
}
echo newstable();
它返回这个:
警告:mysql_fetch_array()要求参数1为资源,给定为布尔值
因此,一旦我试图将工作代码转换为函数,它就会失败。为什么?我正试图弄清楚如何在一个函数中使用这些该死的MySQL函数,这样我就可以用MySQL中的记录构建一个表,并在我网页的任何部分随时调用它。到目前为止,它根本没有合作。
此外,我的数据库中有6条记录,为什么数组只返回1条记录中的数据?
感谢
您发布的in a comment
代码是这样的:
<?php
$host = "localhost";
$uName = "mike";
$pWord = "password";
$con = mysql_connect($host,$uName,$pWord);
if (!$con) {
$mysqlError = "<p>Can not connect to mysql: " . mysql_error() . "</p>";
die ( "can not connect to server");
}
function newstable() {
mysql_select_db("news");
$sqlgetnews = "SELECT * FROM newsByDate ORDER BY date DESC";
$sqlnewsquery = mysql_query($sqlgetnews);
$newsarr = mysql_fetch_array($sqlnewsquery);
return var_dump($newsarr); } mysql_close($con);
echo newstable()
?>
echo newstable()
末尾缺少分号
它需要在那里,否则它会在我使用该代码时产生错误。
您还过早地关闭了数据库连接
使用在我的服务器上成功测试的以下代码:
<?php
$host = "localhost";
$uName = "mike";
$pWord = "password";
$con = mysql_connect($host,$uName,$pWord);
if (!$con) {
$mysqlError = "<p>Can not connect to mysql: " . mysql_error() . "</p>";
die ( "can not connect to server");
}
function newstable() {
mysql_select_db("news");
$sqlgetnews = "SELECT * FROM newsByDate ORDER BY date DESC";
$sqlnewsquery = mysql_query($sqlgetnews);
$newsarr = mysql_fetch_array($sqlnewsquery);
return var_dump($newsarr); }
echo newstable();
mysql_close($con);
?>
将错误报告放在文件的开头:
error_reporting(E_ALL);
ini_set('display_errors', 1);
- http://www.php.net/manual/en/function.mysql-error.php
也可以使用:(在关闭数据库连接之前)
echo mysql_errno($con) . ": " . mysql_error($con) . "'n";
然而,我怀疑你可能是在试图获取数据并获得回音。如果是这样的话,你正试图使用类似于的东西
while ($row = mysql_fetch_assoc($newsarr)) // <- incorrect variable used
{
$row = $row["column"];
}
echo $row;
您需要使用$sqlnewsquery
变量。
while ($row = mysql_fetch_assoc($sqlnewsquery))
{
$row = $row["column"];
}
echo $row;
脚注:
mysql_*
功能弃用通知:
http://www.php.net/manual/en/intro.mysql.php
从PHP 5.5.0开始,该扩展已被弃用,不建议用于编写新代码,因为它将来会被删除。相反,应该使用mysqli或PDO_MySQL扩展。另请参阅MySQL API概述以获取选择MySQL API时的进一步帮助。
这些函数允许您访问MySQL数据库服务器。有关MySQL的更多信息,请访问»http://www.mysql.com/.
MySQL文档可在»http://dev.mysql.com/doc/.