0

私のphpアプリケーションでは、MySQLからストアドプロシージャを呼び出す必要があります

私が作成した手順はこれです。

DROP PROCEDURE IF EXISTS _proc.usp_hotel_rooms_mLoadByPrimaryKey;
CREATE PROCEDURE _proc.`usp_hotel_rooms_mLoadByPrimaryKey`(
_HTR_ID INT(11),
_HTR_TYPE_ID INT(11)
 )
 BEGIN

SELECT
    HTR_ID,
    HTR_NAME,
    HTR_TYPE_ID
FROM hotel_rooms_m
WHERE
    (HTR_ID = _HTR_ID AND HTR_TYPE_ID=_HTR_TYPE_ID)
  ;

 END;

パラメータ_HTR_IDと_HTR_TYPE_IDを渡す必要があるので、このように試しました

<?php 
$con = mysql_connect("localhost","user","user")or die(mysql_error());
$db =  mysql_select_db("_proc") or die(mysql_error());
$par1 = "1";
$par2 = "2";
$dbh->query("CAST usp_hotel_rooms_mLoadByPrimaryKey($par1, $par2, @OutPut)");
 $dbh->query("SELECT @OutPut"); 
echo $dbh;
?>

これは私が得ているエラーですCall to a member function query() on a non-object in D:\xampp\htdocs\_proc\index.php on line

4

3 に答える 3

1

いくつかのスタイルを混同しているようです。オブジェクトを返さmysql_connectず、すべての関数が非推奨になりました。あなたのステートメントは、mysqliまたはPDOを使用したデータベース接続を示唆しているようです。mysql_select_dbmysql_*$dbh->query

mysqliまたはPDOを使用して接続を開き、最初にそれを$dbh変数に割り当てたいと思うかもしれません。

于 2012-10-01T16:58:19.560 に答える
1

あなたは使用する必要があります

mysqliを使用したこのような接続文字列

$mysqli = new mysqli(  "HOST", "USR", "PWD", "DBNAME" );

これは、 phpを使用した家庭教師のMysqlストアドプロシージャのリンクです

于 2012-10-01T17:02:43.710 に答える
1

ここにあなたのコードが行きます

    <?php 
    $dbh = new PDO('mysql:host=localhost;dbname=_proc', "user", "user");
    $par1 = "1";
    $par2 = "2";
    $dbh->query("CAST usp_hotel_rooms_mLoadByPrimaryKey($par1, $par2, @OutPut)");
    $dbh->query("SELECT @OutPut"); 
    echo $dbh;
    ?>
于 2013-02-15T00:17:09.677 に答える