Hello - My problem is as follows (I am trying to migrate from a mssql server to a mysql server)
<? ## I have already made pconnect statements to both the mssql and mysql servers. ## I have summarized what I am trying to achieve below (actual, full code available below): $data = mssql_result(mssql_query("SELECT field1 FROM table1 WHERE ID='1'"),0,0); echo $data; mysql_query("INSERT INTO table2 VALUES('$data')"); ?> The data in the MSSQL table is: Æã IF I call this PHP code from my browser (IE6) it results in the following output: Æã and it also places into the MySQL database the value: Æã However, if I call this PHP code from the command line, using "php.exe test.php" it also results in the following output: Æã but it places into the MySQL database: ’Æ Does anyone have any idea why this is happening? I am sure it is a character set issue, but for the life of me I cannot work out why the command-line does not run the exact same script in the same way as a browser would? Regards, Emile Axelrad, <mailto:[EMAIL PROTECTED]> [EMAIL PROTECTED] -- Reposted in response to: - Ouch. First, you're mixing and matching mssql and mysql functions. Second, there is no function named mysql_insert(). Third, mssql_result() requires three arguments, you only provided two. Fourth, if you mean to be calling mysql_result(), I've never seen folks call it with a mysql_query() function in it, people usually call the query function separately first and put the resource identifier into a variable. Fifth, all of this could be thrown off by your retyping the example rather than copying/pasting or importing the acutal script that's giving you the error. Sixth, you posted the same question twice. --Dan -- <html><head><style> BODY,td {font:9pt Verdana, Arial, sans-serif;color:red} .black {color:black} </style></head> <body> <? set_time_limit(3530); #mssql_pconnect("SQL-1", "xxx", "xxx"); mssql_pconnect("SQL-1", "xxx", "xxx"); mssql_select_db ("xxx"); mysql_pconnect("localhost", "xxx", "xxx"); function AddToErrorDisplay ($text) { global $errordisplay; echo $text; $errordisplay .= $text; return true; } function CreateTable($tablename) { $_temp = mssql_query("exec sp_columns @table_name = '$tablename'"); while ($row = mssql_fetch_assoc($_temp)) { $tablestructure[] = $row; } ## ## Build fieldlist and create table structure ## $createquery = "CREATE TABLE `acclinetest`.`" . strtolower(ereg_replace("[[:space:]+]","",$tablename)) . "_import` (\r\n"; foreach ($tablestructure as $rowid=>$row) { if ($rowid > 0) $fieldlist .= ","; if ($row["TYPE_NAME"] == "ntext") { $fieldlist .= "SUBSTRING([" . $row["COLUMN_NAME"] . "],1,DATALENGTH([" . $row["COLUMN_NAME"] . "])) As [" . $row["COLUMN_NAME"] . ']'; } else { $fieldlist .= '[' . $row["COLUMN_NAME"] . ']'; } switch ($row["COLUMN_NAME"]) { #case 'group': case 'option': $createquery .= "`" . $row["COLUMN_NAME"] . "column` "; break; default: $createquery .= "`" . $row["COLUMN_NAME"] . "` "; break; } switch ($row["TYPE_NAME"]) { case 'nvarchar': if (($row["LENGTH"]/2) > 255) { $createquery .= 'MEDIUMTEXT'; } else { $createquery .= 'VARCHAR(' . ($row["LENGTH"]/2) . ')'; } break; case 'varchar': if ($row["LENGTH"] > 255) { $createquery .= 'MEDIUMTEXT'; } else { $createquery .= 'VARCHAR(' . $row["LENGTH"] . ')'; } break; case 'nchar': case 'char': $createquery .= 'VARCHAR(' . $row["LENGTH"] . ')'; break; case 'text': case 'ntext': $createquery .= 'MEDIUMTEXT'; break; case 'varbinary': $createquery .= 'BLOB'; break; case 'image': $createquery .= 'MEDIUMBLOB'; break; case 'smallint': $createquery .= 'SMALLINT(' . ($row["PRECISION"]+1) . ')'; break; case 'tinyint': $createquery .= 'TINYINT(' . ($row["PRECISION"]) . ')'; break; case 'int': $createquery .= 'INT(' . ($row["PRECISION"]+1) . ')'; break; case 'float': $createquery .= 'FLOAT(8)'; break; case 'int identity': # AUTO_INCREMENT field $createquery .= 'INT(' . ($row["PRECISION"]+1) . ')'; break; case 'bit': $createquery .= 'TINYINT(4)'; break; case 'real': $createquery .= 'FLOAT(4)'; break; case 'money': $createquery .= 'DECIMAL(19,4)'; break; case 'smalldatetime': case 'datetime': $createquery .= 'VARCHAR(40)'; break; default: AddToErrorDisplay("<br><b>UKNOWN FIELD TYPE: " . $tablename . ' --> ' . $row["COLUMN_NAME"] . ' --> ' . $row["TYPE_NAME"] . "</b>"); AddToErrorDisplay("<br><span style='display:none'>" . print_r($row) . "</span>"); break; } $createquery .= ' ' . ($row["NULLABLE"] ? "NULL" : "NOT NULL"); if ($rowid+1 < sizeof($tablestructure)) $createquery .= ","; $createquery .= "\r\n"; # print_r($row); } $createquery .= "\r\n)"; #echo $fieldlist; #echo $createquery; mysql_query($createquery); AddToErrorDisplay(" \r\n:: <span class=black><b>[" . date("H:i:s") . "] " . $tablename . "</b></span><u>" . mysql_error() . "</u>"); flush(); return $fieldlist; } function InsertData($tablename,$fieldlist) { ## ## Retrieve data and build/run reinsert queries ## $_temp = mssql_query("SELECT $fieldlist FROM [$tablename]"); while ($row = mssql_fetch_row($_temp)) { #print_r($row); $i=0; $insertquery = " ("; foreach ($row as $fieldvalue) { $insertquery .= "'" . addslashes($fieldvalue) . "'"; if (++$i < sizeof($row)) $insertquery .= ","; } $insertquery .= ")"; ## Every x rows insert data using SQL query... $dataquery .= ($j % 75 > 0 ? ',' : '') . $insertquery; if (++$j % 75 == 0) { if ($dataquery) { mysql_query("INSERT INTO " . strtolower(ereg_replace("[[:space:]+]","",$tablename)) . "_import VALUES" . $dataquery); AddToErrorDisplay(mysql_error()); # AddToErrorDisplay("<br>INSERT INTO " . strtolower($tablename) . "_import" . $dataquery); unset($dataquery); } } # echo $insertquery . "<br>\r\n"; } # Finish off any remaining queries before ending. if ($dataquery) { mysql_query("INSERT INTO " . strtolower(ereg_replace("[[:space:]+]","",$tablename)) . "_import VALUES" . $dataquery); AddToErrorDisplay(mysql_error()); } AddToErrorDisplay("<span class=black> (inserted $j rows)</span>"); } #mysql_query("DROP DATABASE acclinetest"); #mysql_query("CREATE DATABASE acclinetest"); mysql_select_db("acclinetest"); $_temp = mssql_query("exec sp_tables"); while ($row = mssql_fetch_assoc($_temp)) { if ($row["TABLE_TYPE"] == "TABLE") $tables[] = $row; } foreach ($tables as $tabledata) { mysql_query("DROP TABLE IF EXISTS " . strtolower(ereg_replace("[[:space:]+]","",$tabledata["TABLE_NAME"])) . "_import"); $fieldlist = CreateTable($tabledata["TABLE_NAME"]); InsertData($tabledata["TABLE_NAME"],$fieldlist); } foreach ($tables as $tabledata) { mysql_query("DROP TABLE IF EXISTS " . strtolower(ereg_replace("[[:space:]+]","",$tabledata["TABLE_NAME"]))); mysql_query("ALTER TABLE " . strtolower(ereg_replace("[[:space:]+]","",$tabledata["TABLE_NAME"])) . "_import RENAME AS " . strtolower(ereg_replace("[[:space:]+]","",$tabledata["TABLE_NAME"]))); mysql_query("DROP TABLE IF EXISTS " . strtolower(ereg_replace("[[:space:]+]","",$tabledata["TABLE_NAME"])) . "_import"); } ?> </body></html> -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php