- 締切済み
MySQLでテストサイトは読込OK本番サイトはNG
テストサイトと本番サイト2つのサイトがあります。 それぞれに使用しているファイルはすべて同じものです。 ドメイン名は違いますが、同じサーバにアップされています。 MySQLのデータを読み込んで表示させる作りなのですが、両方とも同じMySQLからデータを読み込んでいます。 MySQLのクライアントのバージョンは5.0.77と書いてありました。 $dsn = "mysql:host=example.com;dbname=test"; $user = "test"; $pas = "aaaaaa"; $db = new PDO($dsn,$user,$pas); $db->exec("SET NAMES utf8"); $db->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER); #SQLの生成~実行 $sql = 'SELECT `a`,`b` FROM `xyz`'; $result = $db->query($sql); while($row = $result->fetch(PDO::FETCH_ASSOC)){ $hoge[] = $row; } というふうな感じでデータを拾いだして読み込んでいます。 コミットというのは、よく分かっていないので、使っていません。 (これが原因?) 今まではうまく表示されていたのですが、急に表示されなくなりました。 とりあえず、サイト閉鎖状態を解除したいので、読み込みを正常にしたいのですが、どのようにすれば良いでしょうか。 知識不足でお恥ずかしいのですが、ほんとに困ってます!助けてください! どうかご教授よろしくお願いいたします。
- みんなの回答 (7)
- 専門家の回答
関連するQ&A
- レンタルサーバーで PHP+MySQL のサイトを作ってます。
レンタルサーバーで PHP+MySQL のサイトを作ってます。 極稀に、一部のクエリーが原因で、 MySQLのプロセスが大量にSleep状態で長時間滞留してしまう事態が生じ、 サーバーに高負荷をかけてしまいます。 これを解消するために、 $sql = "SHOW PROCESSLIST"; $result = mysql_query($sql); while ($row = mysql_fetch_array($result,MYSQL_NUM)){ $id = $row['0']; $time = $row['5']; if($time > 60) mysql_query("KILL {$id}"); } こんな感じのコードをcronで数分毎に実行し、問題のプロセスを停止させようと思ったのですが... どうなんでしょう? アドバイスを頂けないでしょうか。よろしくお願いします。
- 締切済み
- PHP
- PHP+MySQLを実行するとエラーが出てパソコンがフリーズする。
次のphpを実行すると、求めるデータは表示出来ますが、その下に引き続き Warnning:mysql_result()[function.mysql_result]: Unable to jump to row 7 on MySQL result index 3 in C:****test.php on line 10; 同文で on line 11; 以下,Unable to jump toの 「 row 7」 が row 8 row 9・・・・・・ と延々と続き、パソコンがフリーズしてしまいます。 実行したphp文。 <?php $con=mysql_connect(localhost,"root","root"); $selectdb=mysql_select_db("sales",$con); $sql="select * from sample"; $result=mysql_query($sql,$con); $row=mysql_fetch_array($result); $price=mysql_result($result,$i,1); $volume=mysql_result($result,$i,2); echo("$price:$volume<br>\n"); mysql_close($con); ?> 参考書を調べて、いろいろ変えてみましたが、分かりません。 幼稚なphp文で恐縮ですが、悪いところをご指摘頂ければ有難いです。
- ベストアンサー
- PHP
- Call to a member function fetch() on a non-object in
初歩的なことかもしれませんがよろしくお願いいたします。 以下のようなソースでSQLITEからデータを取得しようとしています。 $dsn = "sqlite:aaaa.db,'',''"; $pdo = new PDO($dsn); $sql = "SELECT * FROM m00_aaatbl WHERE m00_aaaaa = '".$_POST['aaaaaa']."'"; $stmt = $pdo->query($sql); $row = $stmt->fetch(); ローカル環境で試験してたときには動作していたのですが、サーバにUPして動作させようとすると Call to a member function fetch() on a non-object in /public_html/index.php on line XX と出てしまいます。(エラーの箇所は$row = $stmt->fetch();) これは、どういった原因が考えられるのでしょうか? php Version 5.2.8です。 お願いいたします。
- ベストアンサー
- PHP
- エラーが出ます。myswl
<?php $_POST['form']; $db_server = "mysql84.heteml.jp"; $db_username = "******"; $db_password = "******"; $mysql = mysql_connect($db_server, $db_username, $db_password); if ($mysql) { $table_name= "kensaku"; $mysql= ""; mysql_select_db($table_name, $mysql); mysql_set_charset("ECU"); $sql = "SELECT kai, tiiki, syoku, kei FROM kensaku" . "WHERE tiiki = '" . mysql_real_escape_string($tiiki) . "'"; $result = mysql_query($sql); if ($result) { $data_count = mysql_num_rows($result); for($i = 0; $i < $data_count; $i++) { $row = mysql_fetch_row($result); $j = 0; $data[$i]['kai'] = $row[$j++]; $data[$i]['tiiki'] = $row[$j++]; $data[$i]['syoku'] = $row[$j++]; $data[$i]['koyou'] = $row[$j++]; } mysql_free_result($result); } else { $error['top'] = "データベースのエラーです。" . mysql_error(); } mysql_close($mysql); } if (isset($error)) { echo $error['top']; } else { for($i = 0; $i < $data_count; $i++) { echo $data[$i]['kai'] . "|" . $data[$i]['tiiki'] . "|" . $data[$i]['syoku'] . "|" . $data[$i]['koyou'] . "<br />"; } } ?> 書き忘れとかあればおしえてください。
- 締切済み
- PHP
- mySQLで結果が無いときの処理
$sql = "select * from test "; $sql .= "where id='".$_POST["id"]."' and pwd='".$_POST["pwd"]."'"; $result = mysql_query($sql); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { if($row){ $msg = "OK"; } } としていますが、NGのときってどういう風にしたらいいのでしょうか? 基本的なことですみませんが、教えてください。
- ベストアンサー
- PHP
- mysqlについてサンプルなど教えてもらえませんか
すいません。今phpなどを使いウェブサイトを作っているのですが、データベースがどうしても 必要となり、参考サイトなどを見ながら作りました。 ほとんどできたのですが、最後に一部データベースの関数などでわからない事があり困っています。 (正直私はプログラムはphp程度が少し分かる程度で、データベースも単純な使い方しかしない 予定なので参考サイトをざっと見ただけでmysqlの事がほとんど分かりません) ググってそれらしい物を探してはいるのですが、私がやりたい事はデータベースから 件数を取りたいだけです。 取った件数をphpで表示したいのですが、何時間やっても良くわかりません。 申し訳ないんですが取り出した後その件数をphpのechoで表示するまでをサンプルとして書いてもらえませんか?(可能であれば「ここでこのような処理が行われている」とコメントがもらえると助かります) データベース関係はphpと違って初心者用のサイトなども無く、書いてある事がほとんど分かりません。 (ここでSELECT COUNT(*)を使うと教えてもらったのですが、SELECT COUNT(*)でググっても サンプルなども出てきません) $pdo = new PDO("mysql:dbname=aaa", "root"); $pdo->query("set names utf8;"); // ------------------------------------------------ $sql = $pdo->query("SELECT COUNT(*) FROM bbb"); $stmt = $pdo->query($sql); $stmt->execute(); $count=$stmt->rowCount(); echo $count; ----------------------------------------------- $result = mysql_query("SELECT COUNT(*) FROM bbb"); $row = mysql_fetch_assoc( $result ); echo $row;
- ベストアンサー
- MySQL
- PHPでMySQLのデータを検索したい
お世話になります。 PHPでMySQLのデータを検索したいと思い、 以下のようにしてみたのですがうまく表示されません。 -- $name = $_POST["name"]; $link = mysql_connect('localhost', '', ''); $db_selected = mysql_select_db('', $link); mysql_set_charset('utf8'); $sql = "SELECT * FROM search WHERE". $name; $result = mysql_query($sql); while($row = mysql_fetch_array($name)) { print $row['name']; } $close_flag = mysql_close($link); -- どう改善すればいいのでしょうか? 初心者の為、少々お見苦しい点があるかと思いますが どうぞよろしくお願いします。
- ベストアンサー
- PHP
- PHP+PDO+MYSQL で実行されたSQL文の取得について
PHP+PDO+MYSQL で実行されたSQL文の取得について PEARのDBからPDOへの移行をしていましてデバック用のSQL文取得で困っています。 $sql = "SELECT * FROM sample where id = ? And id2 = ?" PEARのDBでは $db->query($sql,array(1,5)); $db->last_query; で実行したSQL文を取得することは可能でした。 PDOの場合 $sql_result = $pdo->prepare($sql); $sql_result->execute(array(1,5)); でリプレースフォルダ(クォート処理?)を利用してSQLを実行出来るようですが、 実行したSQLを確認する方法がマニュアル等を読みましたがどうしても分かりません。 どなたかご存知の方がいらっしゃいましたらご教授お願い致します。
- ベストアンサー
- PHP
- DB接続の関数化
下記のデータベースに接続する関数の意味は「MySQLに接続して、PDOクラスで接続したデータベース情報を返す」で合っていますか? function get_db_connect(){ // MySQL用のDSN文字列 $dsn = 'mysql:dbname='. DB_NAME .';host='. DB_HOST .';charset='.DB_CHARSET; try { // データベースに接続する $dbh = new PDO($dsn, DB_USER, DB_PASS, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8mb4')); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $dbh->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch (PDOException $e) { exit('接続できませんでした。理由:'.$e->getMessage() ); } return $dbh; }
- ベストアンサー
- PHP
- SQLのどこがおかしいでしょうか?
PHP4、MySQLです。 for($i=1;$i<34;$i++){ $sql = "select count(group) as cnt".$i." "; $sql.= "from stock "; $sql.= "where group=".$i." "; //print "sql= ".$sql."<br>"; $result = mysql_query($sql,$db) or die("失敗しました".mysql_error ()); $Row = mysql_fetch_array($result, MYSQL_ASSOC); $cnt.$i = $Row['cnt".$i."']; } としています。どこがおかしいでしょうか? 教えてください。 よろしくお願いいたします。
- ベストアンサー
- PHP
お礼
返信遅くなってすみません。 無事解決しました。 どうやら、サーバの仕様で.htaccessを書き換えるとPHPのバージョンが旧バージョンに戻るのが原因だったようです。 お騒がせしましたm(__)m