2 개의 별도의 DB 플랫폼에 데이터를 삽입하려고했는데 처음에는 mySql이고 다른 하나는 SQLAnywhere 11입니다. mysql의 경우 PHP를 사용하여 mysql_query
데이터베이스에 데이터를 삽입했습니다. , SQLAnywhere 11의 경우 함수와 함께 dbisql
명령을 사용하고 있습니다. 명령 자체는 cmd.exe
에서 제대로 작동하지만 PHP로 시도해도 작동하지 않습니다.PHP는 작동하지 않지만 명령 자체가 잘 작동
다음은 시험 코드입니다 :
<?php
$cid = rand(0, 100);
$first_name = "Test";
$last_name = "Test 2";
$connect = mysql_connect("localhost", "root", "");
if ($connect) {
mysql_select_db("db_person");
$query = mysql_query("INSERT INTO table_person (cid, first_name, last_name) VALUES ($cid, '$first_name', '$last_name')") or die(mysql_error());
$query2 = "INSERT INTO table_person (cid, first_name, last_name) VALUES ($cid, '$first_name', '$last_name')";
$cmd = 'C:/"Program Files"/"SQL Anywhere 11"/Bin32/dbisql.exe -d1 '.strtolower($query2).' -c "UID=dba;PWD=axia1234;DSN=Payroll11"';
$output = NULL;
$exec = exec($cmd, $output);
var_dump($output);
} else {
echo "Fail";
}
?>
이 스크립트 몇 몇 번을 실행하기 위해 노력하고 항상 작동합니다.
예 : 어떤 도움을 주시면 감사하겠습니다
C:/"Program Files"/"SQL Anywhere 11"/Bin32/dbisql.exe -d1 insert into table_person (cid, first_name, last_name) values (70, 'test', 'test 2') -c "UID=dba;PWD=axia1234;DSN=Payroll11"
. 미리 감사드립니다.
아마 당신이 명령에 전달하는 인수는 그들이에 depricated대로 mysql_로 * 기능을 제안하지 않는 사용 –
이스케이프 때문에 PHP 5.5.0이며 PHP 7.0.0에서 제거됩니다. mysqli_ * 함수를 대신 사용하십시오. http://php.net/manual/en/function.mysql-query.php –
@SumanBanerjee, 문제는 exec() 함수에 있고 mysql_ * 함수에는 없습니다. 고맙습니다. –