09/02/23 04:52:33
>>346
URLリンク(jp.php.net)
349:nobodyさん
09/02/23 05:29:48 DYtiHKsN
<?php
try {
$oDbCxn = new PDO('sqlite:test1');
$oDbCxn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e) {
die("Error connecting to DB");
}
$bUpdatePending = true;
while ($bUpdatePending) {
try {
$oDbCxn->query("BEGIN EXCLUSIVE TRANSACTION");
// $oDbCxn->beginTransaction();
$oDbCxn->exec("UPDATE tb1 SET value = value + 1 WHERE id = '1'");
$oDbCxn->commit();
$bUpdatePending = false; // Exit the loop now the update has been done
}
catch (PDOException $e) {
print $e->getMessage();
$oDbCxn->rollback();
}
}
?>
350:nobodyさん
09/02/23 05:30:39 DYtiHKsN
>>349
実行すると、なんでエラーになるの?
PHP5 + PDO + SQLite3
----------------------------------
database structure
id | name| value
1 | value| 5
-------------------------------
database name = test1
table name= tb1
351:nobodyさん
09/02/23 05:33:14 DYtiHKsN
トランザクションをスタートするのに、
$oDbCxn->query("BEGIN EXCLUSIVE TRANSACTION");
はダメで、
$oDbCxn->beginTransaction();
なら良い、というのはおかしい。
なぜエラーになるの?
352:nobodyさん
09/02/23 06:48:25 c878IibK
教えて下さい。
test.txt というutf-8のファイルがあって中に文とかphpの変数とかが書いてあります。
これをsjisのtest.phpで読み込み表示させたいのですがincudeだと文字化けします。
どうすれば表示できますか?
353:nobodyさん
09/02/23 06:59:44
<meta http-equiv="Content-Type" content="text/html; charset=Shift-JIS" />
を吐いてやる
354:nobodyさん
09/02/23 07:08:52
>>353
その知識で回答しようと思えるなんて素直に感心するよ
355:nobodyさん
09/02/23 07:20:40 cBNbBaFX
>>348
自分なりに調べてみました><
mb_eregでは !== false でいけたので、それも一緒に比べてみたら
返り値のとこが、
mb_ereg
>正規表現に一致しないか、 エラーを発生した場合に FALSE を返します。
preg_match
>preg_match() は、エラーが発生した場合にFALSEを返します。
でした。
preg_matchは正規表現に一致しないときはfalseを返してくれないので、
!== falseがスルーされたということでよいのでしょうか?><
今まで全部!== falseでできると思っててそれでやってたので変更が大変ですが
preg_matchのときは==とか何もつけないバージョンでやっておきます><
ありがとうございました
356:nobodyさん
09/02/23 07:29:25
>>352
逆だUTF-8の方
両方使いたいなら変換かけるべし
357:nobodyさん
09/02/23 16:02:31
OS linux
PHP ver 5.2.5
連携 とくになし
<?
//------------------------------------------------
//ペット可否
//------------------------------------------------
function GetPet_F($int)
{
$res = "";
if($int=="0") $res = "不可";
else $res = "可能";
return $res;
}
print GetPet_F(0);
?>
以上ソースコードでsyntax error, unexpected $end出るんですが何が原因なんでしょうか・・・
358:357
09/02/23 16:02:51 yJ3BEx4Z
ID出すの忘れ
359:nobodyさん
09/02/23 16:12:39
あれ、流出してる?
360:nobodyさん
09/02/23 16:31:29
>>352
eval(mb_convert_encoding(file_get_contents('test.txt'), 'Shift-JIS', 'UTF-8'));
>>357
構文に間違いはないから
スクリプトのエンコーディングが mbstring.script_encoding と合ってないんでしょう
361:nobodyさん
09/02/23 16:37:17 yJ3BEx4Z
可能の能抜いたらエラー出なかったです・・・
なんなのだろう
362:nobodyさん
09/02/23 16:46:30
>>357
原因は、Shift Jisの5C問題だね。
能のShift Jisのコードが94 5C
5Cはバックスラッシュ(Shift Jisだと¥)なので、
PHPのパーサが、終わりのダブルクォーテーションを文字列と認識してしまう。
結果、文字列が閉じられていないと判断されて、エラーになる。
363:nobodyさん
09/02/23 17:31:12
今時SJISでスクリプト書くやつなんていんの?
話は変わるが
echo '<table ~'.
'~~~~~~~~~'.
'~~~~~~~~~'.
'~~~~~~~~~'.
'~~~~~~~~~';
引継ぎでプログラムのソースコード見たらこうなってた
まじ簡便してくれ・・・orz
あと、同じ要領でechoでJavaScriptとか吐き出してるのもやめてくれ
クエリはまだ許せる
仕事でプログラムするときはほかの人にわかりやすいコードにしてください
これまじでお願い
364:nobodyさん
09/02/23 17:59:46
--enable-zend-multibyte付けてmbstring.script_encodingを設定すりゃ
Shift-JISだろうが何で書こうがそいつの自由だ
雑談スレに行けクズ
365:nobodyさん
09/02/23 21:03:10 cBNbBaFX
また質問させていただきます
$aa = "AA";
$bb = "bb";
$sql = "SELECT * FROM v001upfile WHERE :AA = :BB";
$result = executeQuery($sql);
$result->bindParam(":AA",$aa,PDO::PARAM_STR);
$result->bindParam(":BB",$bb,PDO::PARAM_STR);
$result->execute();
$row = $result->fetchAll();
$rows = count($row);
のようにすると、whereに該当するデータがなく、$rowsも0になってしまいます。いろいろしていると、
$sql = "SELECT * FROM v001upfile WHERE AA = :BB";
とするとデータが得られました。
どうやらwhere :AAのbindのパラメータ、PDO::PARAM_STR
で、'AA'とされてしまっているから?、だめのような気がするのですが、
解決策ありましたらよろしくおねがいします
366:nobodyさん
09/02/23 21:21:42
>>365
それ駄目だ、俺も悩んだ
WHERE $AA = ?か、 ? = ?にしたよ
SELECTでbindValueとbindParamは使わない方がいいって
グーグル先生が言ってた
367:nobodyさん
09/02/23 21:33:37
PDO::PARAM_STMT
368:nobodyさん
09/02/23 21:36:22
カラム名にPARAM_STR使うなよ
アホかw
369:nobodyさん
09/02/23 22:03:46 ikSisMyc
【OS名】CentOS 5.0
【PHPのバージョン】php5.2
【連携ソフトウェア】JavaScript Smarty
【質問内容】
ユーザがログインに成功したときにセッションに値をセットして
次にページにアクセスしてきた時にSmartyで値があるか確認して初期化処理
例:
{{if $smarty.session.foo == 'bar'}}
init(); //これはJScriptの関数
{{/if}}
をしたいんですけど、ブラウザを終了するとセッションまで破棄されてしまいます。
ご教授お願いいたします。
370:nobodyさん
09/02/23 22:06:30 cBNbBaFX
>>366
sql文に直接変数入れる方法でしました。できました。
ありがとうございました
>>367,368
やってみたのですが、反応としては356とほぼ同じでした
マニュアルのパラメータ一覧のものをいろいろ代えてやってみたのですが
どうもうまくいきませんでした。
371:nobodyさん
09/02/23 22:12:39
>>369
セッションはブラウザを終了すると破棄されるものです
継続したいならクッキーを使うといいよ
372:nobodyさん
09/02/23 22:28:00
>>370
そのいろいろかえてやってみた、の中に正解が入ってないわけだな。
ビット和はとったのか。まぁ、いいや。メンドクセ
373:nobodyさん
09/02/23 22:55:40 DYtiHKsN
なぜEXCLUSIVEはトランザクション開始直後に
ジャーナルファイルを作成しないのか?
374:nobodyさん
09/02/23 22:59:36
アホか
375:369
09/02/23 23:03:42
>>371
PHPSESSIDをクッキーに格納する仕様と勘違いしてました。
ありがとうございました。
376:nobodyさん
09/02/24 00:24:39 r/vu3Jnx
∩_
〈〈〈 ヽ
〈⊃ }
∩___∩ | |
| ノ ヽ ! !
/ ● ● | /
| ( _●_) ミ/ <ココまでアホばかり
彡、 |∪| /
/ __ ヽノ /
(___) /
377:nobodyさん
09/02/24 07:08:35
pdoで急にinsertできなくなった・・
エラーなしで何事もなく終わってるのに肝心のinsertだけできていない・・