Php Wordpress mysql_fetch_array()要求参数1为资源错误
使用mysql非常新,但是,我正在尝试修复wordpress插件中一段旧代码中的一个错误-以下是原始代码:Php Wordpress mysql_fetch_array()要求参数1为资源错误,php,mysql,wordpress,Php,Mysql,Wordpress,使用mysql非常新,但是,我正在尝试修复wordpress插件中一段旧代码中的一个错误-以下是原始代码: $sql = mysqli_query("SELECT count(`question_count`) as Qcount FROM `wp_posts` WHERE `question_count` = 1 and `question_date` = '".date("Y-m-d")."'") or die(mysql_error()); $no_o
$sql = mysqli_query("SELECT count(`question_count`) as Qcount FROM `wp_posts` WHERE `question_count` = 1 and `question_date` = '".date("Y-m-d")."'") or die(mysql_error());
$no_of_questions = get_option( 'askme_setting_no_of_questions', 10 );
if($row = mysql_fetch_array($sql)) {
$qry = $row['Qcount'];
}
if($qry >= $no_of_questions) {
$value = "The question limit for today has been reached";
$button = "disabled";
} else {
$value = "Add your question to the cart";
$button = " ";
}
出现以下错误:
mysqli_query() expects at least 2 parameters, 1 given in
此后,我将第一行更改为使用Wordpress函数,如下所示:
$sql = $wpdb->get_results( "SELECT count(`question_count`) as Qcount FROM `wp_posts` WHERE `question_count` = 1 and `question_date` = '".date("Y-m-d")."'" );
现在会出现以下错误:
mysql_fetch_array() expects parameter 1 to be resource, array given in ...
Undefined variable: qry in ...
这里有什么明显的错误吗?你把事情搞混了
mysql
和mysqli
是PHP中两组完全不同的函数。您不能使用mysqli\uu
函数发送查询,也不能使用mysql\u*
操作结果
另外,mysql
函数在PHP5的更高版本中被弃用,在PHP7中被完全删除
您最好的选择是遵循@tadman的建议,并使用WP的API来实现这一点 你把事情搞混了
mysql
和mysqli
是PHP中两组完全不同的函数。您不能使用mysqli\uu
函数发送查询,也不能使用mysql\u*
操作结果
另外,mysql
函数在PHP5的更高版本中被弃用,在PHP7中被完全删除
您最好的选择是遵循@tadman的建议,并使用WP的API来实现这一点 是您唯一更改
$sql=
行的行吗
从wordpress抄本:
global $wpdb;
$results = $wpdb->get_results( 'SELECT * FROM wp_options WHERE option_id = 1', OBJECT );
应根据返回结果的数组或对象。
因此,您的代码不需要执行任何与fetch_assoc相关的方法。Wordpress正在处理实际的数据库连接和查询解析,并将结果返回给您
可能的解决办法:
// formatting for readability.
$date = date("Y-m-d");
// Prepare query.
$sql = $wpdb->prepare(
"SELECT count(`question_count`) as Qcount
FROM `wp_posts`
WHERE `question_count` = 1
AND `question_date` = %s",
$date
);
// Execute query.
$results = $wpdb->get_results($sql);
// Get option for number of questions.
$no_of_questions = get_option( 'askme_setting_no_of_questions', 10);
// Set base values to avoid usage of else condition.
$value = "Add your question to the cart";
$button = " ";
// Check to ensure results returned.
if (!empty($results)) {
// Evaluate result of query.
if ($results[0]->Qcount >= $no_of_questions) {
// Update values only if necessary.
$value = "The question limit...";
$button = "disabled";
}
}
您是否只更改了
$sql=
行
从wordpress抄本:
global $wpdb;
$results = $wpdb->get_results( 'SELECT * FROM wp_options WHERE option_id = 1', OBJECT );
应根据返回结果的数组或对象。
因此,您的代码不需要执行任何与fetch_assoc相关的方法。Wordpress正在处理实际的数据库连接和查询解析,并将结果返回给您
可能的解决办法:
// formatting for readability.
$date = date("Y-m-d");
// Prepare query.
$sql = $wpdb->prepare(
"SELECT count(`question_count`) as Qcount
FROM `wp_posts`
WHERE `question_count` = 1
AND `question_date` = %s",
$date
);
// Execute query.
$results = $wpdb->get_results($sql);
// Get option for number of questions.
$no_of_questions = get_option( 'askme_setting_no_of_questions', 10);
// Set base values to avoid usage of else condition.
$value = "Add your question to the cart";
$button = " ";
// Check to ensure results returned.
if (!empty($results)) {
// Evaluate result of query.
if ($results[0]->Qcount >= $no_of_questions) {
// Update values only if necessary.
$value = "The question limit...";
$button = "disabled";
}
}
您应该首先建立mysqli连接,然后使用查询并进一步获取查询。您可以按照下面的链接使用mysqli获取查询
您应该首先建立mysqli连接,然后使用查询并进一步获取查询。您可以按照下面的链接使用mysqli获取查询
不要使用mysqli作为一个例子。独家使用,不要混搭。这里真正的问题是你试图使用
mysqli
,却无意中使用了破旧的mysql\u查询
接口。@tadman完全同意你的观点-我的目标是用$wpdb替换对mysqli和mysql\u查询接口的引用(你将从我的第一次更改中看到)-但是,我不知道如何更改代码的第二部分以适应第一部分-如果这样做有意义的话,您不能使用mysql\u fetch\u array
或类似的东西。忘了那些功能吧,它们没有关联,也不兼容。只使用WPDB函数。在文档中,他们参考get_row
了解结果,依此类推。使用这些。可能重复的不使用mysqli
作为一个。独家使用,不要混搭。这里真正的问题是你试图使用mysqli
,却无意中使用了破旧的mysql\u查询
接口。@tadman完全同意你的观点-我的目标是用$wpdb替换对mysqli和mysql\u查询接口的引用(你将从我的第一次更改中看到)-但是,我不知道如何更改代码的第二部分以适应第一部分-如果这样做有意义的话,您不能使用mysql\u fetch\u array
或类似的东西。忘了那些功能吧,它们没有关联,也不兼容。只使用WPDB函数。在文档中,他们参考get_row
了解结果,依此类推。使用这些。可能是我要写一个答案的副本,但这基本上就是我要说的。我要补充的唯一一点是,OP似乎是在半心半意地尝试从mysql
转换到mysqli
。指出mysql\u query
和mysqli\u query
的方法签名是不同的(因此解释了错误消息)。我本来打算写一个答案,但这基本上就是我要说的。我要补充的唯一一点是,OP似乎是在半心半意地尝试从mysql
转换到mysqli
。指出mysql\u query
和mysqli\u query
的方法签名是不同的(从而解释了错误消息)。