Предупреждение: mysql_num_rows(): предоставленный аргумент не является допустимым ресурсом результата MySQL в строке 21
Хорошо, ниже приведен мой код, и я попытался отладить его с помощью var_dumps .. var_dump($inserttion) возвращает до конца, что означает, что запрос вставляется в базу данных, но по какой-то причине я получу предупреждение, когда хочу увидеть если mysql_num_rows делает свою работу и возвращает FALSE с предупреждающим сообщением заголовка. Ниже приведен мой короткий прямой код
<?php
require'sensdb.php';
if (sensdb_connect()) {
$select = "SELECT SubGroupID from STx WHERE GroupID = '39'AND Status ='Provisioned'";
$result = mysql_query($select);
$result_count = mysql_num_rows($result);
if($result_count > 0)
{
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
if($row['SubGroupID'] != 123) {
$insert = "INSERT INTO Routes (SubGroupID,GroupID,URL) VALUES (".$row['SubGroupID'].",39,'mailto://e2pressure@gmail.com')";
$insertion = mysql_query($insert);
$insertion_count = mysql_num_rows($insertion); var_dump($insertion_count);
$select_route_id = "SELECT RouteID FROM Routes WHERE SubGroupID =".$row['SubGroupID']." AND GroupID = 39";
$result_route_id = mysql_query($select_route_id);
$result_route_count = mysql_num_rows($result_route_id);
if($insertion_count > 0 ) {
if($result_route_count > 0) {
$row_route = mysql_fetch_array($result_route_id,MYSQL_ASSOC);
$update = "UPDATE STx SET RouteID =".$row_route['RouteID']." WHERE SubGroupID =".$row['SubGroupID']."";
var_dump($update);
}
}
}
}
}
}
1 ответ
Из документов PHP:
Получает количество строк из набора результатов. Эта команда действительна только для операторов типа SELECT или SHOW, которые возвращают фактический набор результатов. Чтобы получить количество строк, затронутых запросом INSERT, UPDATE, REPLACE или DELETE, используйте mysql_affered_rows ().
Кроме того, вы действительно должны использовать PDO (или что-то подобное).