2010-11-25 8 views
1

私は40〜50列の挿入いくつかのテーブルを持っている - 型定義は悪夢です - とこのようになります。私は、列を追加すると「ississsiisssisiiisssssiissssiisssssssiiiiiiiiiiiiiiiiiiiiiiiiiiiiは」PHPのbind_paramでは、すべての列を型文字列として定義することはできません。

、私はどこに置くには考えています次の手紙。私がそれを台無しにすると、明らかに文字列が数値に変換されます(意味がありません)。しかし、文字列として扱われる数値はMySQLには問題がないようです。他の誰かが私が心配すべき何かを見ていますか?

はここbind_paramドキュメントを参照してください。ここでhttp://php.net/manual/en/mysqli-stmt.bind-param.php

+0

isisisisisssiiiisiiiiを維持するカラム名

implode(',', array_keys($table_columns)) 

このメソッドをリストするには?申し訳ありませんが、あなたの質問はあまりにも悪夢です。もう少し詳しく説明できますか? – deceze

+1

@decezeこれらはmysqli文のプレースホルダの定義です。 sは文字列、iは整数を表します。あなたが 'a foo from bar where a =?'のような文を持っているときは?とb =? 'の場合、すべての'? 'はbind param呼び出しの1文字/型に対応します。 – Gordon

+0

ゴードンに飛び込んでくれてありがとう、おかげさまでした。 – Arbol

答えて

0

はアドバイス

  • あなたのテーブルの列とそのタイプを保持する配列を構築している

など

など
$table_columns = array('NAME_OF_COLUMN_1'=>'i', 
'NAME_OF_COLUMN_2'=>'i', 
'NAME_OF_COLUMN_3'=>'s', 
... 

あります列タイプを変更する場合は、$table_columnsを更新してください。
新しい列の追加がある場合は、$table_columnsに新しい列を追加します。
既存の列が削除されている場合は、既存の列をリモートの`$table_columnsから削除します。結合のためのその後

、ちょうど

implode('', array_values($table_columns)) 

は、エラーが発生しやすい減らし、かつ簡単に

+0

はい - これは、整数の代わりに文字列型を使用してPHP mysqliを介してMySQLにすべての値を挿入することに関する私の質問に答えるものではありません。 – Arbol

+0

私のための解決策を考案してくれてありがとう - しかし。大変感謝しています。 – Arbol

関連する問題