Я пытаюсь синхронизировать идентичные таблицы из SQL Server в MySQL через PHP.Тем не менее, я продолжаю работать с ошибкой «mysqli_num_rows () ожидает, что параметр 1 будет mysqli_result, дано bool».Я знаю, что эта конкретная ошибка дает мне понять, что с моим запросом что-то не так, но я пробовал все известные мне исправления (меняя имена столбцов не на ключевые слова, следя за тем, чтобы имена не были введены неправильно, и т. Д.), И все равно это не так.за работой.Вот код:
<?php
$serverName = "<my_server_name>";
$connectionInfo_mssql = array("Database"=>"<db_name>", "CharacterSet"=>"UTF-8");
$conn_mssql = sqlsrv_connect($serverName, $connectionInfo_mssql);
$conn_mysql = new mysqli("localhost", "<user>", "<pass>", "<db_name>");
//SELECT FROM SQL SERVER DB
$mssql_array = array();
$ms_sql = "SELECT * FROM dumma";
$mssql_query = sqlsrv_query($conn_mssql , $ms_sql);
while($row = sqlsrv_fetch_array($mssql_query))
{
$mssql_array[] = array('descript' => $row['descript'], 'codee' => $row['codee'], 'classification' => $row['classification'], 'id' => $row['id'], 'remark' => $row['remark']);
}
foreach($mssql_array as $key => $value)
{
//SELECT FROM MySQL DB
$my_sql = " SELECT * FROM dumma WHERE descript ='".$value['descript']."' AND codee = '".$value['codee']."' AND classification = '".$value['classification']."' AND id = '".$value['id']."' AND remark = '".$value['remark']."' ";
if ($my_sql) {
$mysql_query = mysqli_query($conn_mysql , $my_sql);
$num_rows = mysqli_num_rows($mysql_query);
}
if (!$my_sql->query("SET a=1")) {
printf("Errormessage: %s\n", $my_sql->error);
}
$mysql_query = mysqli_query($conn_mysql , $my_sql);
$num_rows = mysqli_num_rows($mysql_query);
if ($num_rows == 0)
{
//INSERT INTO MySQL DB
$sql = "INSERT INTO dumma VALUES ('".$value['descript']."', '".$value['codee']."', '".$value['classification']."', '".$value['id']."', '".$value['remark']."')";
$sql_query = mysqli_query($conn_mysql, $sql);
}
}
echo "dumma Table MySQL updated!"."<br>";
echo "<a href='table_updater.php'>Go back to updater</a>";
?>
Ошибка возникает в этой строке:
$my_sql = " SELECT * FROM dumma WHERE descript ='".$value['descript']."' AND codee = '".$value['codee']."' AND classification = '".$value['classification']."' AND id = '".$value['id']."' AND remark = '".$value['remark']."' ";
$mysql_query = mysqli_query($conn_mysql , $my_sql);
$num_rows = mysqli_num_rows($mysql_query);
Часть таблицы данных и столбца данных:
https://i.imgur.com/20cFugp.png https://i.imgur.com/ucebUao.png (извините, у меня недостаточно представителей, чтобы публиковать его здесь напрямую)
По некоторым причинам, это ТОЛЬКО столбец "дескриптор", который вызывает проблемы.Я попытался удалить их все по одному, и когда я удалил столбец «дескриптор» из синтаксиса, я не получил ошибку (к сожалению, это вызывает огромные проблемы, потому что вместо синхронизации двух таблиц, он удваивает содержимоевместо таблицы MySQL).Кроме того, я использовал точно такой же код с другими таблицами (только изменяя переменные), и они отлично работали.
Любые идеи очень ценятся!