2016-06-27 7 views
-2

[![画像の説明をここに入力してください] [1]] [1]既存のMysqlサーバ(ローカルサーバie host = localhost:3036)に接続するためにLAMPサーバとPHPスクリプトを使用しています。 )。mysqlに行を挿入できません

私は、預金者のテーブルは、上記のスキーマに従って作成されたこれらの行を実行した後

$sql2="create table depositor(serial int not null auto_increment primary key, customer_name varchar(50), account_number varchar(20));"; 
$retval2=mysql_query($sql2, $conn); 

if(! $retval2) 
{ 
die('Failed to create the depositor table' .mysql_error()); 
} 
echo "Successfully created the depositor table\n"; 

を使用して預金と呼ばれるテーブルを作成しました。

今、私はこのコードが何らかのエラーを生成し、PHPスクリプトが実行されない

$sql4="insert into depositor (serial_number, customer_name, account_number) values (1,"Hayes","A-102");"; 

使用して、この表に行を挿入しようとしました。

問題は、コマンドラインを使用してmysqlサーバにログインするときに、(CLIで)同じクエリを実行できることです。

insert into depositor (serial_number, customer_name, account_number) values (1,"Hayes","A-102"); 

私は何が欠けていますか?

私も属性の一つは、フォーム

$sql4="insert into depositor (customer_name, account_number) values ("Hayes","A-102");"; 
でPHPスクリプトに置かれたときに上記のクエリは、コマンドラインで正常に実行しなく

AUTO_INCREMENTだったと思っ

insert into depositor (customer_name, account_number) values ("Hayes","A-102"); 

を試してみました

なぜ出力にこの不一致がありますか?

私もソースコードを掲載しています。

enter code here 
<html> 
<head> 
<title>Challenge01</title></head> 
<body> 

<?php 
$dbhost='localhost:3036'; 
$dbuser='root'; 
$dbpass='root'; 
$conn=mysql_connect($dbhost, $dbuser, $dbpass); 
if(! $conn) 
{ 
die('Failed to connect to the server</br>' . mysql_error()); 
} 
echo "Connected to the server successfully</br>"; 

$sql1="create database bank"; 
$retval1=mysql_query($sql1, $conn); 
if(! $retval1) 
{ 
die('Failed to create the database bank</br>' .mysql_error()); 
} 
echo "Database created successfullly</br>"; 
mysql_select_db('bank'); 
$sql2="create table depositor(serial int not null auto_increment primary key, customer_name varchar(50), account_number varchar(20));"; 

$sql3="create table loan(serial int not null auto_increment primary key, loan_number varchar(10), branch_name varchar(50), amount int);"; 
$retval2=mysql_query($sql2, $conn); 
$retval3=mysql_query($sql3, $conn); 
if(! $retval2) 
{ 
die('Failed to create the depositor table</br>' .mysql_error()); 
} 
echo "Successfully created the depositor table</br>"; 

if(! $retval3) 
{ 
die('Failed to create the loan table</br>' .mysql_error()); 
} 
echo "Successfully created the loan table</br>"; 
echo "Entering data into the depositor table</br>"; 


//$sql4 = "insert into depositor (customer_name, account_number) values ("Hayes","A-102");"; 

/* 
$sql5="insert into depositor (customer_name, account_number) values ("Johnson","A-101");"; 
$sql6="insert into depositor values(3,"Johnson","A-201");"; 
$sql7="insert into depositor values(4,"Jones","A-217");"; 
$sql8="insert into depositor values(5,"Lindsay","A-222");"; 
$sql9="insert into depositor values(6,"Smith","A-215");"; 
$sql10="insert into depositor values(7,"Turner","A-305");"; 
*/ 

/* 
$retval4=mysql_query($sql4, $conn); 
if(! $retval4) 
{ 
die('Could not insert the item in the depositor table' . mysql_error()); 
} 
echo "Data successfully entered\n";*/ 
/* 
$retval5=mysql_query($sql4, $conn); 
if(! $retval4) 
{ 
die('Could not insert the item in the depositor table' . mysql_error()); 
} 
echo "Data successfully entered\n"; 




echo "Now entering data into the loan table\n"; 
$sql11="insert into loan values(1,"L-11","Round Hill",900);"; 
$sql12="insert into loan values(2,"L-14","Downtown",1500);"; 
$sql13="insert into loan values(3,"L-15","Perryridge",1500);"; 
$sql14="insert into loan values(4,"L-16","Perryridge",1300);"; 
$sql15="insert into loan values(5,"L-17","Downtown"1000);"; 
$sql16="insert into loan values(6,"L-23","Redwood",2000);"; 
$sql17="insert into loan values(7,"L-93","Mianus",500);"; 

echo "Data successfullly entered\n"; 
*/ 


$sqla="select * from depositor;"; 
$sqlb="select * from loan;"; 
$retvala=mysql_query($sqla, $conn); 
$retvalb=mysql_query($sqlb, $conn); 
if(! $retvala) 
{ 
die('Failed to display the depositor table</br>' . mysql_error()); 
} 
echo "The Depositor table is shown above</br>"; 
if(! $retvalb) 
{ 
die('Failed to display the loan table</br>' . mysql_error()); 
} 
echo "The Loan table is as shown above</br>"; 
mysql_close($conn); 
?> 
</body> 
</html> 
+0

この文を実行するために使用しているPHP関数は?あなたは完全なスクリプトで質問を更新できますか? – tachomi

+0

私はmysql_query($ query、$ connection)関数を使用しています。ここで$ queryは実行する必要のあるクエリを含む文字列変数で、$ connectionはローカルサーバ –

+0

の接続識別子です。スクリーンショットをポストする代わりにソースファイルをアップロードする方法はありますか? –

答えて

1

これはおそらくdba.stackexchange.comに属しますが、私が見る最初の問題は、あなたがserialという列を作成したことで、その後、serial_numberという名前の列に値を追加しようとしました。 $sql4ステートメントの問題は、引用符で囲まれています。内部二重引用符をエスケープするか、エスケープタイプの関数を使用する必要があります。これを行うには、http://php.net/manual/en/function.mysql-real-escape-string.phpを参照してください。

+0

私の側からは間違いがありました(シリアルではなくserial_numberを書く)が、エスケープ文字列を使って(私が引用したものの中から)クエリを書くことができるので.....含まれているリンクから、エスケープ文字列を使用してPHP変数をクエリ部分から分離しました。これは私のクエリでは当てはまりません.....私のクエリ(代入演算子の右辺)にはPHP変数が含まれていません。 –

+0

変数を使用する必要はありません。エスケープ文字列関数に定数を渡すことができます。 – John

関連する問題