Я получил этот запрос MySQL:
$ideventoPrecedente = 1;
$data = date ("Y/m/d");
4orario = date ("Y/m/d H:m");
$creator = 3;
$patient = 3;
$bisogno = "i need something";
$qevento= $db->prepare(INSERT INTO event(ideventoPrecedente, data, orario, creatoreEvento, paziente, bisogno ) VALUES(:ideventoPrecedente, :data, :orario, :creator, :patient, :bisogno) );
$qevento->execute($ideventoPrecedente, $data, $orario, $creator, $patient, $bisogno);
Я хотел бы знать, как я могу преобразовать его в запрос к базе данных Oracle.
Я нашел этот код, но он не работает:
$stid = oci_parse($dbconn, 'INSERT INTO evento (ideventoPrecedente, data, orario, creatoreEvento, paziente, bisogno) values
($ideventoPrecedente, $data, $orario, $creator, $patient, $bisogno)' );
oci_execute($stid);
Ошибка:
Warning: oci_execute(): ORA-00911: invalid character in F:\wamp\www\ginevracrm\index.php on line
Warning: oci_fetch_array(): ORA-24374: define not done before fetch or execute and fetch
В вашем посте я думаю, что ваша попытка, скорее всего, не сработала, поскольку в вашем операторе SQL есть переменные, заключенные в одинарные кавычки, поэтому интерпретатор не преобразует их в их действительные значения. Вы можете попытаться исправить это и повторить попытку.
Ваш пробег может варьироваться, но это (непроверенный) смысл того, как делать то, что вы хотите сделать.
// Open your database connection
$connection = oci_connect($username, $password, $database);
// Parse your SQL statement
$stmt = oci_parse($connection, "INSERT INTO evento (ideventoPrecedente, data, orario, creatoreEvento, paziente, bisogno) VALUES
(:ideventoPrecedente, TO_DATE(:data, 'YYYY/MM/DD'), TO_DATE(:orario, 'YYYY/MM/DD HH:MI'), :creator, :patient, :bisogno)";
// Define your variables needed for your parsed SQL statement
$ideventoPrecedente = 1;
$data = date ("Y/m/d");
$orario = date ("Y/m/d H:m");
$creator = 3;
$patient = 3;
$bisogno = "i need something";
// Bind the variables to the parsed statement
oci_bind_by_name($stmt, ':ideventoPrecedente', $ideventoPrecedente, -1, SQLT_INT);
oci_bind_by_name($stmt, ':data', $data, -1, SQLT_CHR);
oci_bind_by_name($stmt, ':orario', $orario, -1, SQLT_CHR);
oci_bind_by_name($stmt, ':creator', $creator, -1, SQLT_INT);
oci_bind_by_name($stmt, ':patient', $patient, -1, SQLT_INT);
oci_bind_by_name($stmt, ':bisogno', $bisogno, -1, SQLT_CHR);
// Execute the statement
oci_execute($stmt);
Других решений пока нет …