0

私のプロジェクトをmysqlからmysqliに変換しようとしていますが、エラーが発生するようです

Warning: mysqli_query() expects at least 2 parameters, 1

これは私のデータベース接続です

$mysqli = new mysqli();
$mysqli->connect('localhost', 'root', '', 'myscript');

これがクエリです

$sql = mysqli_query("SELECT * FROM settings WHERE id='1'") or die (mysqli_error());
$results = mysqli_fetch_array($sql);

誰かがこのエラーを修正する方法を教えてくれたら、私は感謝します. 前もって感謝します。

4

2 に答える 2

2

オブジェクト指向の PHP と通常の PHP を組み合わせて使用​​する代わりに、オブジェクト指向の PHP を使用してクエリを実行してみてください。

$mysqli = new mysqli();
$mysqli->connect('localhost', 'root', '', 'myscript');
if($result = $mysqli->query("SELECT * FROM settings WHERE id='1'")){

    //DO STUFF

    $result->close();
}else{
     printf("Error: %s\n", $mysqli->error);
}
于 2013-02-25T18:56:06.390 に答える
1

あなたのプロジェクトをmysqlからmysqliに変換しないでください。
PDOに変換します。
Mysqliは、初心者向けマニュアルのばかげた例にのみ適しています。進行するにつれて、生活が困難になります。

したがって、mysqliの代わりにPDOを使用してください。
それはほとんど同じです:

$opt = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
$pdo = new PDO('mysql:dbname=myscript;host=localhost','root','', $opt);

$stm = $pdo->prepare("SELECT * FROM settings WHERE id=?");
$stm->execute(array(1));
$data = $stm->fetch();

このコードですでに使用されている、パラメーター化されたクエリのサポート(ドライバー間のこのような移動の主な理由)に注意してください。
このような小さな例でも、PDOの方が優れています。はるかに良い。そして、より複雑なものでは、mysqliは完全に使用できなくなりますが、PDOは同じです-非常に醜いですが、少なくとも実行可能です。

于 2013-02-25T19:01:50.313 に答える