2017-11-23 26 views
-3

私は1 &でドメインをホストしています。私はpdoを使って自分のデータベースに接続したいと思います。ポートを使用せずに、それは動作しませんし、私は自分のコードにポートを追加する方法がわからない....何らかの理由で私のコードが動作しない

$mysql_host = "xxxxxxxxx"; 
$mysql_username = "xxxxxxxxxxxxxx"; 
$mysql_database = "xxxxxxxxxxxxxxx"; 
$mysql_password = "xxxxxxxxxxxxxxx"; 

$pdo = new PDO("mysql:host=" . $mysql_host . ";dbname=" . $mysql_database , $mysql_username , $mysql_password); 

イムわからないが、おそらく問題は、接続と一緒に行きません。しかし、mysqlコマンドで...

$schematic_statement = $pdo->prepare('SELECT title FROM schematics-download WHERE id = 1'); 
    $schematic_statement->bindParam('title', $Title); 
    $schematic_statement->execute(); 
    $TITLE = $schematic_statement->fetch(); 

    echo ($TITLE); 

ありがとうございます!

+1

[docs](http://us3.php.net/manual/en/ref.pdo-mysql.connection.php)を参照してください。 –

+0

マニュアルを読むか? http://php.net/manual/en/pdo.connections.php通知[このユーザーが寄稿しました](http://php.net/manual/en/pdo.connections.php#114822)。 –

+1

また、ここで列をバインドしようとするように見えますが、そのことはできません。 –

答えて

3

「ポートを使用せずに、それは動作しませんし、私は自分のコードにポートを追加する方法がわからない....」

これ(多分)は何もしています移植に関連する

ただし、コードにはいくつかの(構文)エラーがあります。

1)あなたは、列(またはテーブルを結合することができない)

あなたSELECT titlebindParam('title'はそれを示唆しています。

2)FROM schematics-download - mysqlのはそのためFROM schematicsMINUSdownload、とあなたは、テーブル名をエスケープする必要があると解釈されます。

すなわち:

FROM `schematics-download` 

これは移植問題であるならば、this user contributed noteはそれを行う方法を示します。

$conn = new PDO('mysql: host=123.4.5.6;dbname=test_db;port=3306','username','password'); 
                 ^^^^^^^^^^ 

とエラー処理についてはhttp://php.net/manual/en/ref.pdo-mysql.connection.php

 
More complete examples: 

mysql:host=localhost;port=3307;dbname=testdb 
mysql:unix_socket=/tmp/mysql.sock;dbname=testdb 

から

は、PDOは持っている:あなたは、いくつかを投げているだろう

。クリスのコメントから撮影

: 『後で、$ TITLEがエコーすることができないので、配列を返すフェッチ』

はPDOでデータをフェッチ上のドキュメントを見てみましょう:

そこに十分な例であり、これを行うためににお見せします。

+0

OPであなたのコメントに関するランダムな質問があります:列名に変数を使用することはできますか?私はあなたが入力を消毒しない限り、クエリ内の変数を使用することは一般的には良い考えではないことをお読みになりましたが、私は興味があります。変数の列名を持つクエリのユースケースがあるかどうかは不明です。 – cchoe1

+0

@ cchoe1はい、列/テーブル名に変数を使用できます。ただし、mysqlが文句を言う文字は含まれていないためです。どんな場合でも '\' 'にチェックを入れるのが最善ですが、セーフリストもうまくいきます。列/表をフォームから使用する必要がある場合や、あらかじめ定義された選択肢のセットとして使用する必要がある場合があります。 –

-1

大部分は1 &データベースの1つのドメインポートは3306です。このポートで接続を試すことができます。また、接続のテストを実行します。コードで説明してみましょう:

$host = ''; //ip with port e.g 127.0.0.1:3306 
$db = 'test'; 
$user = 'root'; 
$pass = ''; 
$charset = 'utf8mb4'; 
try{ 
    $dsn = "mysql:host=$host;dbname=$db;charset=$charset"; 
    echo "You are connected to your 1&1 domain db successfully"; 
}catch (PDOException $e) { 
    print "Error!:You have not connected to your database " . $e->getMessage(); 
} 

シナリオに従ってこのコードを実行できます。うまくいけばあなたの問題に取り組むでしょう。あなたの接続がある場合

PHP delusions

PHP manual

を:それ以外のサポートとあなたのポートと、ユーザー名、パスワードなどあなたがこれらの2つのリンクを訪問することができ、よりdetialsのために のような他の資格情報を伝えるためにそれらを求めるためにお問い合わせください成功したら、クエリを探します。

+0

投稿したリンクによると、あなたのコードは間違っています –

関連する問題