好的,这有效:
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条记录中的数据?
由于
答案 0 :(得分:0)
您发布的代码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);
还可以使用:(在关闭数据库连接之前)
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 Overview以获得进一步的帮助。
这些功能允许您访问MySQL数据库服务器。有关MySQL的更多信息,请访问»http://www.mysql.com/。
可以在»http://dev.mysql.com/doc/找到MySQL的文档。