私は PHP が初めてで、SQL と PHP に関するチュートリアルを見て、それらのファイルを作成しました。
insert_news.php:
require_once __DIR__ .'/db_connect.php';
$sql = "INSERT INTO news ( descriere, data, autor) VALUES (?, ?, ?)" ;
$params = array("The description", "12/11/2011", "COsmin");
$serverName = "my server";
$connectionInfo = array( "Database"=>"myusername", "UID"=>"myusername", "PWD"=>"mypassword");
$conn = sqlsrv_connect($serverName, $connectionInfo );
$stmt = sqlsrv_query( $conn , $sql, $params );
if( $stmt == false ) {
echo("NOT");
die( print_r( sqlsrv_errors(), true));
}
?>
このコードはうまく機能しているようです。
今私の問題は、データベースへの接続をより簡単にするクラスを作りたかったということです。それがコードです:
db_connect.php
<?php
class DB_CONNECT {
function __construct(){
$this->connect();
}
function __Destruct(){
$this->close();
}
function connect() {
$serverName = "my server";
$connectionInfo = array( "Database"=>"my db", "UID"=>"my user", "PWD"=>"my pass" );
$con = sqlsrv_connect($serverName, $connectionInfo );
return $con;
}
function close(){
sqlsrv_close();
}
}
?>
そして、insert_new.php ファイルからこのクラスを次のように呼び出したい場合:
<?php
require_once __DIR__ .'/db_connect.php';
$sql = "INSERT INTO Stiri ( descriere, data, autor) VALUES (?, ?, ?)" ;
$params = array("ASta e o stvnmbvire aduagata printr-un web service php", "12/11/2011", "COsn");
$conn = new DB_CONNECT() ;
$stmt = sqlsrv_query( $conn , $sql, $params );
if( $stmt == false ) {
echo("NU");
die( print_r( sqlsrv_errors(), true));
}
?>
これを試すと、サーバーから次のように返されます。
警告: sqlsrv_query() は、パラメーター 1 がリソースであり、9 行目の C:\xampp\htdocs\android_connect\insert_news.php で指定されたオブジェクトであると想定しています NUArray ( [0] => Array ( [0] => IMSSP [SQLSTATE] => IMSSP [1] => -14 [コード] => -14 [2] => 無効なパラメーターが sqlsrv_query に渡されました. [メッセージ] => 無効なパラメーターが sqlsrv_query に渡されました. ) )
私は XAMPP を使用して php ファイルをコンパイルし、データベースは SQL Server 2005 であることを述べます...私の愚かなことであなたの時間を無駄にしてしまったら申し訳ありません...