2016-06-28 7 views
-1

私はゲームを作っています。私はこれまで何をしようとしてもうまくいかないようなクエリでいくつかの問題に遭遇しました。私は(検証される)4つの変数このSQL UPDATE QUERYはなぜfalseを返しますか?

$id, $plantId, $stage, $started 

を持っており、私のクエリは次のようになります...

$sql = " 
     UPDATE growth 
     SET plantId = '$plantId', stage = '$stage', started = '$started' 
     WHERE id = '$id' 
"; 

それはfalseを返しますが、私はphpMyAdminの中に同じクエリを試してみましたが、それは働きました! 私は何が間違っていますか?

+3

あなたはそれ以上私たちに与える必要があります。どのAPIが使用していますか?あなたは '$ sql'の値をチェックしようとしましたか?実行するコードはどこですか? – FirstOne

+0

実行されているクエリの実際のランタイム値はいくらですか?データベースからの実際のエラーは何ですか? – David

+0

__exactly__は 'false'を返しますか? –

答えて

0

プレーンなMySqlを使用しないでください。私は新技術の習得が圧倒していると感じているかもしれませんが、2016年に生きています。人生を楽にするツールがたくさんあります。

例DIBIデータベース層については

:ドキュメントに示すように、あなたはOFFICIAL VERSIONのいずれかを使用することができます https://github.com/dg/dibi

SELECT:

dibi::query('SELECT * FROM users WHERE id = ?', $id); 

INSERT

$arr = [ 
    'name' => 'John', 
    'is_admin' => TRUE, 
]; 
dibi::query('INSERT INTO users', $arr); 

UPDATE

dibi::query('UPDATE users SET', $arr, 'WHERE `id`=?', $x); 

それとも、FLUENT VERSION使用することができます。

$res = dibi::select('product_id')->as('id') 
    ->select('title') 
    ->from('products') 
    ->innerJoin('orders')->using('(product_id)') 
    ->orderBy('title') 
    ->fetchAll(); 

INSERT

$record = array(
    'title' => 'Výrobek', 
    'price' => 318, 
    'active' => TRUE, 
); 
dibi::insert('products', $record) 
    ->execute(); 

をSELECT、UPDATE

$record = array(
    'title' => 'Výrobek', 
    'price' => 318, 
    'active' => TRUE, 
); 
dibi::update('products', $record) 
    ->where('product_id = %d', $id); 
    ->execute(); 

これはあなたの人生をはるかに簡単にします。流暢なバージョンを学び、あなたの質問をつなぎ合わせることはかなり面白いです。クエリをテストする必要がある場合は、単にtest()メソッドを使用してください。

SQLインジェクションについて心配する必要はありません。

+0

チップをありがとう。基本的なことを理解したらそれを見ていきます。しかし、何かを学ぼうとすると、生の中核を最初に理解するのに役立ちます。その後、その周りに構築されたパックのすべての種類を学ぶことがはるかに簡単です。 –

関連する問題