我試圖插入一些數據到2個獨立的數據庫平臺,第一個是mySql,另一個是SQLAnywhere 11.對於MySQL我用php mysql_query
方法插入數據庫,而對於SQLAnywhere 11,我使用dbisql
命令和php exec()
函數。該命令本身在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_ *函數中。謝謝。 –