我正在尝试设置一个简单的cron脚本来进行一些数据库更新,而对于没有ActiveRecord的MySQL(我使用CodeIgniter),我是毫无价值的。我一直收到错误消息,
mysql_fetch_object(): supplied argument is not a valid MySQL result resource
使用以下代码:
mysql_connect("localhost", "user", "pass") or die(mysql_error());
mysql_select_db("my_db") or die(mysql_error());
$query = "select visit_e_id, visit_e_type from visits";
$result = mysql_query($query)
or die("Query failed: ".mysql_error()." Actual query: ".$query);
while($row=mysql_fetch_object($result))
{
....
}
就像我说的那样,对于直接的PHP和MySQL,我并不是那么好(对于如何包含某些框架或可以作为cron作业的一部分的ActiveRecords的建议,我会很感激)。有什么想法吗?
答案 0 :(得分:1)
如果将mysql_connect指定为变量并将其作为链接标识符作为第二个参数传递给mysql_select_db
和query
函数,会发生什么?
$db = mysql_connect("localhost", "user", "pass") or die(mysql_error());
// Check to see if valid connection
var_dump($db);
mysql_select_db("my_db", $db) or die(mysql_error());
$query = "select visit_e_id, visit_e_type from visits";
$result = mysql_query($query, $db)
or die("Query failed: ".mysql_error()." Actual query: ".$query);
while($row=mysql_fetch_object($result))
{
....
}
还要确保查询语法正确且没有拼写错误或拼写错误
答案 1 :(得分:1)
此错误非常简单且不言自明 - $ result变量具有意外类型
因此,你必须进行一些调试。在循环前和内部添加var_dump($result);
并研究输出。