0

だから準備文を使うようにみんなに言われましたが、今何をすべきかわかりません。

 $stmt = mysqli_prepare($con, "SELECT * FROM search WHERE `name2` LIKE '?' AND `approved`='approved'");
mysqli_stmt_bind_param($stmt, 's', $name);

/* execute prepared statement */
mysqli_stmt_execute($stmt);

それは私のコードです。どのように配列を作成するのですか

while ($row=mysqli_fetch_array($result))

準備不足から

4

1 に答える 1

0

PDO を使用することを決定したことを嬉しく思います。

//using MySQL
//refer here for reference http://www.php.net/manual/en/ref.pdo-mysql.php
$pdo = new PDO('mysql:host=xxx;port=xxx;dbname=xxx', $username, $password)

//write query
$sql = "SELECT * FROM search WHERE `name2` LIKE '?' AND `approved`='approved'";

//tell query what to replace ? marks with
$fill_array = array($name); // one item in array for the one ? in $sql above

//send query to DB for preparation
$prepare = $pdo->prepare($sql);

//send variables to DB, DB will bind them to the proper place and execute query
$prepare->execute($fill_array);

//get your array. I personally recommend PDO::FETCH_ASSOC but you are using ARRAY
$result = $prepare->fetchAll(PDO::FETCH_ARRAY);

echo '<pre>'.print_r($result, true).'</pre>';

出来上がり!

$name をエスケープし、% 記号やアンダースコアなどをチェックするコードを記述する必要があることに注意してください。

于 2013-08-06T14:38:38.040 に答える