mysql_query($sqlstr) or die("無(wú)法創(chuàng)建數(shù)據(jù)庫(kù).");就這里就沒(méi)有寫(xiě)入數(shù)據(jù)了
創(chuàng)新互聯(lián)科技有限公司專業(yè)互聯(lián)網(wǎng)基礎(chǔ)服務(wù)商,為您提供德陽(yáng)服務(wù)器托管,高防服務(wù)器租用,成都IDC機(jī)房托管,成都主機(jī)托管等互聯(lián)網(wǎng)服務(wù)。
從代碼上看,前面的連接數(shù)據(jù)庫(kù)的代碼應(yīng)該正確執(zhí)行了,建庫(kù)的sql語(yǔ)句也基本正確,那么可能的原因:
你用來(lái)登錄的用戶,沒(méi)有建立數(shù)據(jù)庫(kù)的權(quán)限。
$sql = "CREATE TABLE accounts
(
account varchar(16),
password varchar(16),
nickname varchar(16),
ip carchar(16),
condition varchar(3)
)";
ip這個(gè)字段的字段類型carchar(16)寫(xiě)錯(cuò)了,varchar(16);
1,把php生成的創(chuàng)建表格語(yǔ)句在mysql客戶端里運(yùn)行,看能不能成功,如果語(yǔ)法錯(cuò)誤會(huì)有提示;
2,檢查mysql用戶是否有權(quán)限創(chuàng)建表;
代碼比較長(zhǎng),看了后,提幾點(diǎn)建議:
既然是要查代碼為什么沒(méi)有達(dá)到預(yù)期的效果,那么可以將代碼各步驟進(jìn)行分解開(kāi)。
從代碼的功能來(lái)看,應(yīng)該是個(gè)建庫(kù)的代碼,那么,要完成一個(gè)建庫(kù)的功能,可能的步驟錯(cuò)誤發(fā)生之處:
1. 數(shù)據(jù)庫(kù)連接不對(duì)(用戶名、密碼錯(cuò)誤,沒(méi)有建庫(kù)權(quán)限等)。
2. 既然是用讀取 SQL 文件的形式載入,那么:
a. SQL語(yǔ)句沒(méi)有編寫(xiě)正確。
b. 文本的編碼格式不符(比如ANSI / UTF-8)。
c. 讀取SQL后,進(jìn)行語(yǔ)句處理不正確。
可能還有其他存在錯(cuò)誤之處,比如,PHP環(huán)境沒(méi)有設(shè)置好、Mysql沒(méi)有安裝配置好等等。
建議你設(shè)定斷點(diǎn),然后逐句跟蹤調(diào)試,這個(gè)代碼都在一個(gè)文件里,跟蹤調(diào)試比較方便 。
1,把php生成的創(chuàng)建表格語(yǔ)句在mysql客戶端里運(yùn)行,看能不能成功,如果語(yǔ)法錯(cuò)誤會(huì)有提示;
2,檢查mysql用戶是否有權(quán)限創(chuàng)建表;
在創(chuàng)建完數(shù)據(jù)庫(kù)之后使用使用 mysql_select_db('shisheng');
創(chuàng)建表的時(shí)候不要寫(xiě)庫(kù)名,直接寫(xiě)表名。類似這樣CREATE TABLE if not exists wenzhang