首发于: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> }
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号