0

MySQLで次のクエリを入力しました。

insert into hospital (name,age) values ('william', 'select * from department where age = $agegrp');

これで、この値(sql)をフェッチして、実行しようとしました。これどうやってするの?

selectステートメントを。という変数にフェッチしました$var

$agegrp = "10";
$value = mysql_query ($var) or die ('error');

error挿入したクエリに問題があるだけです。どうすればこれを解決できますか?

4

3 に答える 3

1

私への最初の質問: なぜ病院のテーブルに SQL コードを保存するのですか? すべての SQL コードが php プログラム コードに埋め込まれていれば、より理にかなっています。後でテーブルのデザインを変更しても、データベース テーブルの内容を変更する必要はありません。

しかし、あなたの質問に答えるために、 $var の内容は単純な文字列です。必要なのは、それを評価するか、文字列 '$agegrp' を変数 $agegrp の実際の値に置き換えることです。あなたができるように:

$agegrp = "10";
$var = str_replace('$agegrp',$agegrp,$var;
$value = mysql_query ($var) or die ('error');

これは簡単な解決策です。

于 2012-07-13T12:00:07.800 に答える
0

age は、おそらく整数になるプロパティです。そのフィールドにクエリを挿入することはできません。あなたがする必要があるのは、クエリを実行することです。

"SELECT * FROM Department WHERE age = {$agegrp}"

次に、その結​​果を取得してから、挿入を実行します。また、早い段階でクエリのバインド パラメータを確認してください。SQL インジェクションを許可したくありません。

于 2012-07-13T11:56:17.337 に答える
0

これを試してみてください。

 <?php
    $con = mysqli_connect("localhost","username","password");
    if (!$con)
      {
      die('Could not connect: ' . mysqli_error());
      }

  $var=  mysqli_select_db("my_db", $con);

    $var="select * from department where age = $agegrp");
    $result=mysqli_query($var);
    while($row = mysqli_fetch_array($result))
      {
      echo $row['age'] ;
      echo "<br />";
      }

mysqli_close($con);
?>
于 2012-07-13T12:01:54.250 に答える