スレッド表示 | フラット表示〕 全トピック 920 件中 787 番目 次≫ ≪前

エラー表示について

created: 2003-10-05 13:26 | modified: 2003-10-06 23:14 | reply: 5

[739] エラー表示について

user: ピレ | created: 2003-10-05 13:26
前回の可変変数については問題解決しmySQL接続、クエリー実行、登録、画面表示が出来るようになりました。ありがとうございました。
今回は別の問題に直面しています。
下記のクエリーを実行すると最下記のエラー表示が出てしまいます。



$sql = "SELECT item_name FROM item_mst WHERE item_code=${post_item_code}";
$result = _query($connect,$sql);

データベースの設定(アクセス権など)もチェックし、テーブル名、フィールド名もまちがいありませんでした。また関数もインクルードファイルで定義済みで、他のテーブル操作では動くので問題はないはずです。

INCLUDE FILE
////////////////////////////
function _query( $_connect, $_query ){
$_result=mysql_query($_query,$_connect)
or die('クエリ発行エラー = ' .mysql_error());
return( $_result );
}

function _dbConnect(){
//DB接続
$_conn = mysql_connect( _DB_SERVER, _DB_UID, _DB_PASS)
// $_conn = mysql_connect( _DB_SERVER, _DB_UID)
or die('DB接続失敗 = ' . mysql_error());

//DB選択
mysql_select_db( _DB_NAME, $_conn)
or die('DB選択失敗 = ' . mysql_error());

return( $_conn );

}
///////////////////////////////////


クエリ発行エラー = You have an error in your SQL syntax near '' at line 1

質問は、このような場合に何を疑わなければならないのかということです。例えばsql文の
${post_item_code}に値が入っていないから?とか。

以上宜しくお願い致します。
reply: 740 返信 編集 削除

[740] SQL文を要確認

user: hamaji | created: 2003-10-05 14:06
>You have an error in your SQL syntax near '' at line 1
というエラーはSQL文の構文エラーです。

> $sql = "SELECT item_name FROM item_mst WHERE item_code=${post_item_code}";
のあとに
echo $sql;
などとしてSQL文を確認してみては。
また、それをコピーしてコマンドラインに貼り付けて実行して確認してみてください。

気になるのが
> ${post_item_code}
という記述の仕方です。

[追記]
すいません。可変変数だったのですね。
だとしたら値が入っていないのでは?
Parent: 739  reply: 741 返信 編集 削除

[741] 構文エラー

user: ピレ | created: 2003-10-05 15:59
URLの窓をみるとpost_item_code=2とかあるので値は入っているのがわかりました。
それにしても私は不勉強というか鈍いというか、いやそうではなくて基本理解が出来ていないのだと実感しました。下記方法で解決しました。

$sql = "SELECT item_name FROM item_mst WHERE item_code=${post_item_code}";
この部分を

$sql = "SELECT item_name FROM item_mst WHERE item_code=" . "'" . $post_item_code . "'";

とすることで解決しました。解決すると簡単な?コードで見栄えのあるページが表示できるので感動ものです。

このような部類の文法的説明をまとめた書籍(出来るだけ薄いものを)などをご紹介いただけるとありがたいのですが。
(出来るだけ薄いものを)またはPHPのホームページを見ればあるのでしょうか?
Parent: 740  reply: 742 744 返信 編集 削除

[742] MySQL関連の書籍等について

user: hamaji | created: 2003-10-05 20:25
> このような部類の文法的説明をまとめた書籍(出来るだけ薄いものを)などをご紹介いただけるとありがたいのですが。
> (出来るだけ薄いものを)またはPHPのホームページを見ればあるのでしょうか)
おすすめの書籍といえば(PHPとMySQLに限ってですが)以下のものなどがあります。

AI出版:PHP&MYSQLでつくるWebデータベース
http://www.ai-pub.co.jp/contents/book/linux-unix/mysql-php.html
秀和システム:MySQL活用ガイド
http://www.shuwasystem.co.jp/cgi-bin/detail.cgi?isbn=4-7980-0097-3
翔泳社:MySQL徹底入門
http://www.seshop.com/detail.asp?pid=1780
などでしょうか。あとオンラインなら
MySQL日本語マニュアル
http://www.mysql.gr.jp/jpdoc/3.23.x/manual.ja_toc.html
SAK Streets
http://homepage2.nifty.com/sak/
のPHP、MySQLのところなどでしょうか。
PHP本家のマニュアルではSQLの学習には役不足でしょう。あくまでもPHPメインですから。
あとはSQL言語の本(本屋に行けば大量にあります)安いのでいいと思うので1冊あればいいのではないでしょうか。

かくいう私も職業プログラマながらSQLにはあまり詳しくありません。(笑)同僚からは『PHP、MySQLはマニアックだ』などとバカにされつつWeb系ではないソフト会社で1人Webプログラマーをやっています。
確かにMySQLのSQL文はかなり特殊です。あとMySQLにはクリエイトビューがなかったり(あとユニオンもなかったのでは?)ジョイン構文もあるのですが書き方がかなり特殊であったりしますが、DBの入門には最適でしょう。

あとお使いの環境がWinかLinuxかわかりませんが、WindowsであればAccessなんかもSQLの学習にうってつけです。
最初はわたしもAccessはバカにしてましたがデータベースウィザードやクエリウィザードというのがあり、GUI環境でデータベースの構築ができ、視覚的にわかりやすいので結構つかえます。とくにクエリウィザードではSQL文を自動で生成してくれます。ただしこのSQL文を他のデータベースソフトで実行するとまず動きませんが。しかし勉強にはもってこいです。

長くなりすいません。本題に戻しますがDBを使ったスクリプトを作りたいのであれば、PHPだけでなくSQLの勉強をすることも
大切です。これが他の言語などでも役にたちますからね。
Parent: 741  reply: 743 返信 編集 削除

[743] Re.MySQL関連の書籍等について

user: ピレ | created: 2003-10-06 00:20
ご提示頂いた情報の(全部は無理なので)一部をとにかく勉強したいと思います。また、ご親切な提案に接しやる気が出てきたような気がします。いずれご質問をさせて頂きたいと思います。ありがとうございました。
Parent: 742  返信 編集 削除

[744] SQL文

user: まさご | created: 2003-10-06 23:14
$sql = "SELECT item_name FROM item_mst WHERE item_code=" . "'" . $post_item_code . "'";

ですが

$sql = "SELECT item_name FROM item_mst WHERE item_code='$post_item_code'";

こうも書くことができます。(^_^)

オマケに参加させてもらいました。
Parent: 741  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 787 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑