可能重复:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result
mysql_fetch_array() expects parameter 1 to be resource, boolean given in select
嘿,我是mySQL的初学者,这是我写的代码,`
<?php
echo "Here is the table";
$con = mysql_connect("localhost","root","mypassword");
if(!$con)
die('Error:'.mysql_error());
// Create table
mysql_select_db("my_db", $con);
$sql = "CREATE TABLE persons
(
f_name varchar(15),
l_ame varchar(15),
age int
)";
mysql_query("INSERT INTO persons (f_name, l_name, age)
VALUES ('Peter', 'Griffin', '35')");
mysql_query("INSERT INTO persons (f_name, l_name, age)
VALUES ('Glenn', 'Quagmire', '33')");
$res = mysql_query("SELECT * FROM persons");
while($row = mysql_fetch_array($res))
{
echo $row['f_name'] . " " . $row['l_name'];
echo "<br />";
}
?>`
我收到以下错误
这是表格 警告:mysql_fetch_array():提供的参数不是第40行/var/www/PhpProject1/index.php中的有效MySQL结果资源
为什么我会收到此错误,如何解决?
答案 0 :(得分:4)
您尚未创建表“人员”,您只需要一个包含create语句的String。 “l_ame varchar(15)”附近也有一个拼写错误,它应该是“l_name varchar(15)”。所以你应该尝试以下代码:
$sql = "CREATE TABLE persons
(
f_name varchar(15),
l_name varchar(15),
age int
)";
$res = mysql_query($sql) or trigger_error(mysql_error().$sql); ;
答案 1 :(得分:2)
matschie的答案是正确的,但这不是唯一的错误。
您的列在create table语句中拼写错误:
l_ame varchar(15),
应该是:
l_name varchar(15),
要自己捕获这样的错误,您可以检查mysql_query
的返回值以查看是否存在错误,如果是,则使用mysql_error
显示错误。
如何执行此操作的示例显示在mysql_query的PHP手册中:
$result = mysql_query('SELECT * WHERE 1=1');
if (!$result) {
die('Invalid query: ' . mysql_error());
}
答案 2 :(得分:2)
实际上并不是mysql_fetch_array错误。此错误消息表明此函数的参数错误 并且这个参数由mysql_query()函数返回 所以这意味着在mysql端的查询执行过程中出现了错误 ans mysql有很多错误信息,非常有用。
因此,您必须与某些错误消息取得联系,而不是猜测,这会告诉您哪里出错了。
要实现这一点,请始终以这种方式运行查询:
$sql = "SELECT * FROM persons";
$res = mysql_query($sql) or trigger_error(mysql_error().$sql);