Heim >Backend-Entwicklung >PHP-Tutorial >PHP通过(PDO)Mysql表字段一键生成创建sqlite的SQL_PHP教程

PHP通过(PDO)Mysql表字段一键生成创建sqlite的SQL_PHP教程

WBOY
WBOYOriginal
2016-07-13 10:28:581174Durchsuche

首发于:http://www.zzzzy.com/201406053158.html

 

<span> 1</span>     <span>/*</span><span>*
</span><span> 2</span> <span>     * Mysql表字段一键生成创建sqlite的SQL
</span><span> 3</span> <span>     * $db 数据库
</span><span> 4</span> <span>     * $tbname 表名
</span><span> 5</span> <span>     * $is_blob 需要保存的图片二进制数组 array("img1","img2","img3")形式,默认为false
</span><span> 6</span> <span>     * $retbname 自定义生成sqlite的表名
</span><span> 7</span> <span>     * return SQL的语句形式
</span><span> 8</span>      <span>*/</span>
<span> 9</span>      
<span>10</span>     <span>public</span> <span>function</span> creat_sqlite(<span>$db</span>, <span>$tbname</span>, <span>$is_blob</span> = <span>false</span>, <span>$retbname</span> = <span>false</span><span>){
</span><span>11</span>         
<span>12</span>         <span>$runsql1</span> = <span>$db</span>->query("SELECT * FROM `<span>$tbname</span>` limit 1"<span>);
</span><span>13</span>         <span>$fields_rows</span> = <span>$runsql1</span>-><span>columnCount();
</span><span>14</span>         
<span>15</span>         <span>$tb_fields_info</span> = <span>array</span><span>();
</span><span>16</span>         <span>$tb_string</span> = ""<span>;
</span><span>17</span>         <span>$dot</span> = ""<span>;
</span><span>18</span>         
<span>19</span>         <span>for</span> (<span>$i</span> = 0; <span>$i</span> < <span>$fields_rows</span>; <span>$i</span>++<span>) {  
</span><span>20</span>             <span>if</span> (<span>$i</span> == 1<span>) {
</span><span>21</span>                 <span>$dot</span> = ", "<span>;
</span><span>22</span> <span>            }
</span><span>23</span>             
<span>24</span>             <span>$tb_meta</span> = <span>$runsql1</span>->getColumnMeta(<span>$i</span><span>);
</span><span>25</span>             <span>$tb_string</span> .= <span>$dot</span>.<span>$tb_meta</span>['name'<span>];
</span><span>26</span>             <span>//</span><span>var_dump($tb_meta);
</span><span>27</span>             
<span>28</span> <span>            //如果存在数据且字段存在需要取消的字段中</span>
<span>29</span>             <span>if</span> (<span>$is_blob</span> && <span>in_array</span>(<span>$tb_meta</span>['name'], <span>$is_blob</span><span>)) {
</span><span>30</span>                 <span>$tb_string</span> .= " "."blob"<span>;
</span><span>31</span>             } <span>else</span><span> {
</span><span>32</span>                 <span>//</span><span>如果不需要保存为二进制</span>
<span>33</span>                 <span>switch</span>(<span>$tb_meta</span>['native_type'<span>]){
</span><span>34</span>                     <span>case</span> "VAR_STRING":
<span>35</span>                         <span>$tb_string</span> .= " "."varchar"<span>;
</span><span>36</span>                         <span>break</span><span>;
</span><span>37</span>                         
<span>38</span>                     <span>case</span> "LONG":
<span>39</span>                         <span>$tb_string</span> .= " "."integer"<span>;
</span><span>40</span>                         <span>break</span><span>; 
</span><span>41</span>                         
<span>42</span>                     <span>case</span> "BLOB":
<span>43</span>                         <span>$tb_string</span> .= " "."text"<span>;
</span><span>44</span>                         <span>break</span><span>;
</span><span>45</span>                     <span>case</span> "TINY":
<span>46</span>                         <span>$tb_string</span> .= " "."smallint"<span>;
</span><span>47</span>                         <span>break</span><span>;
</span><span>48</span> <span>                }
</span><span>49</span> <span>            }
</span><span>50</span>             
<span>51</span>             <span>if</span> (<span>isset</span>(<span>$tb_meta</span>['flags'][1]) && (<span>$tb_meta</span>['flags'][1] === "primary_key"<span>)) {
</span><span>52</span>                 <span>$tb_string</span> .= " "."PRIMARY KEY"<span>;
</span><span>53</span> <span>            }
</span><span>54</span>             
<span>55</span>             <span>if</span> (<span>isset</span>(<span>$tb_meta</span>['flags'][0]) && (<span>$tb_meta</span>['flags'][0] === "not_null"<span>)) {
</span><span>56</span>                 <span>$tb_string</span> .= " "."NOT NULL"<span>;
</span><span>57</span> <span>            }    
</span><span>58</span> 
<span>59</span>             <span>//</span><span>var_dump($tb_meta);</span>
<span>60</span> <span>        }
</span><span>61</span> 
<span>62</span>         <span>//</span><span>生成的sqlite表名</span>
<span>63</span>         <span>$retbname</span> = <span>$retbname</span> == <span>true</span> ? <span>$retbname</span> : <span>$tbname</span><span>;
</span><span>64</span>         
<span>65</span>         <span>//</span><span>创建数据的SQL语句</span>
<span>66</span>         <span>$creat_data</span> = "CREATE TABLE  IF NOT EXISTS {<span>$retbname</span>} (<span>$tb_string</span>);"<span>;  
</span><span>67</span>                
<span>68</span>         <span>return</span> <span>$creat_data</span><span>;      
</span><span>69</span>     }

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/780020.htmlTechArticle首发于:http://www.zzzzy.com/201406053158.html 1 /* * 2 * Mysql表字段一键生成创建sqlite的SQL 3 * $db 数据库 4 * $tbname 表名 5 * $is_blob 需要保存的图片二进...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn