簡體   English   中英

如何使用PHP :: PDO使用變量執行mysql腳本?

[英]How to execute mysql script with variables using PHP::PDO?

我無法執行長腳本pdo拋出異常:

SQLSTATE[HY000]: General error

如果我提交的腳本不包含變量,則它運行沒有問題。 相同的腳本在phpmyadmin界面上運行。

這是我的代碼片段:

 try {
 $dsn = "mysql:host=" . DB_SERVER . ";dbname=" . DB_DEFAULT;
 $db = new PDO($dsn, DB_USER, DB_PASS);
 $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 $q = $db->query($query);
 if (!$q) {
 echo $db->errorInfo();
  } else {
        $rows = $q->fetchAll(PDO::FETCH_ASSOC);
    }
} catch (PDOException $e) {
    var_dump($e);
 }

這是一些不由PDO執行的測試:

SET @ra_LMC:=80.9;
SELECT @ra_LMC;

我應該如何使用pdo執行多行腳本?

謝謝
阿爾曼。

PDO不允許在一個query()請求中執行多個語句。 但是您的@ra_LMC變量應該在當前連接中可見,因此您可以將第二行(SELECT)放入新的query()調用中。

要讀取整個腳本,您必須解析文件並通過調用query()來運行每個語句。

PDO一次只能執行一個語句。 您可以將SETSELECT作為2個單獨的語句運行。 或者您可以使用FROM設置變量。

SELECT @ra_LMC FROM (SELECT @ra_LMC:=80.9) q

暫無
暫無

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

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