2016-10-18 1 views
1

私はWordpressサイト内で、dateintおよびvarcharをタイプとして使用するカラムを使用するテーブルを作成しました。

ただし、var_dumpを使用して特定の行と結果の値を取得すると、すべての列がstringと表示されます。

これはDB呼び出しと関数の操作に実際には影響しませんでしたが、なぜ彼らは文字列として返されているのでしょうか?var_dumpint値。

enter image description here

$bv_set = $wpdb->get_row('SELECT * FROM wp_before_after WHERE ID = '.$bv_id); 

var_dump($bv_set); 

C:\wamp64\www\bellavou\wp-content\plugins\bv-before-afters\views\edit.php:8: 
object(stdClass)[6915] 
    public 'ID' => string '1' (length=1) 
    public 'created' => string '0000-00-00' (length=10) 
    public 'before_date' => string '2015-04-08' (length=10) 
    public 'after_date' => string '2015-04-21' (length=10) 
    public 'patientID' => string '2137' (length=4) 
    public 'procedureID' => string '238' (length=3) 
    public 'patient_display' => string '1' (length=1) 
    public 'procedure_display' => string '1' (length=1) 
    public 'gallery_display' => string '1' (length=1) 
    public 'before_img' => string '2200' (length=4) 
    public 'after_img' => string '2199' (length=4) 
    public 'period_taken' => string '1week' (length=5) 
    public 'notes' => string '' (length=0) 
+2

コードを見てみると参考になります。 –

+0

はい、もちろんです。 DBへの呼び出しを追加し、 'var_dump'の結果を残しました。 – Lee

+0

'get_row'には何がありますか?これはクエリを実行する/結果を取得するためのラッパーメソッドであると仮定しますか? – DevDonkey

答えて

2

は、あなたが見ることができる(https://www.sitepoint.com/3-strange-php-facts-you-may-not-know/を参照してください):

を今
while ($row = mysqli_fetch_object($this->result)) { 
    $this->last_result[$num_rows] = $row; 
    $num_rows++; 
} 

mysqli_fetch_objectのためのPHPのドキュメントを見てみ:

correspon文字列プロパティを持つオブジェクトを返します。 dsをフェッチされた行に、またはNULLが結果セットにそれ以上ない場合はNULLを返します。

これは質問に対する答えを提供します。

+0

これを行う特別な理由はありますか? DB行を操作する操作に影響しないように思えば、すべてを文字列として返すことができるのでしょうか? – Lee

+0

@それはPHP言語そのものの開発者のための質問です。 – iblamefish

+0

PHP言語の開発者に何か質問する必要はありません。なぜなら、適切な質問をする人には明らかな決定があるからです。 MySQLはテキストプロトコルを使用してデータをPHPに返します。 PHPはデータを表現する方法を知らないので、最も安全なことです。すべてを文字列とみなします。この動作を「修正」するためのmysqlndというライブラリ(別のコメントで述べた)があります。間違った結論に達する前に、少しだけ研究が必要です。 – Mjh

0

高MySQLのコネクタに依存し、それが「ヌル」値のようなDBのフィールドのオプションに基づいて型鋳物です。また、いくつかの悪名高いPHPの型鋳造に関連するかもしれない、それは最終的に順番に(執筆時点でライン1822)mysqli_fetch_objectを呼び出す、$wpdb->queryを呼び出すこと$wpdb->get_rowのコードを読む

+1

PHPをひどくコーディングすると、サイトポイント上のものが起こる可能性があります。 – DevDonkey

+0

質問の作成者がscreenshot + var_dumpの例を追加する前にありました.-今、彼はwpdbクラスを使用してデータを照会しています。 – Jan

関連する問題