簡體   English   中英

如何將插入查詢從php-mysql轉換為php-oracle?

[英]How can i convert a insert query from php-mysql to php-oracle?

我有這個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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM