-1

インターネットで見つけたスクリプトを開発しようとしています (検索/自動提案)。スクリプトは非常に小さいですが、接続、構成ファイルに問題があると思います。古い接続スタイルはスクリプトで適切に機能していることがわかりましたが、「定義」接続を使用している場合、すべてのスクリプトが機能しなくなり、データが表示されません。

古い接続

$host="aha";
$user="aha";
$pass="aha";
$base="aha";
$connect=mysql_connect($host,$user,$pass);
mysql_select_db($base, $connect);
?>

接続の定義がスクリプトで機能しない

define("DB_HOST", "aha");
define("DB_NAME", "aha");
define("DB_USER", "aha");
define("DB_PASS", "aha");

スクリプトは非常に古いコードで書かれているので、この非常に小さなスクリプトを新しい方法で書き直す必要があると思いますが、問題は、どうすれば適切に行うことができるかということです。

スクリプト

<?php
include('config.php');
if($_POST)

{

$q=$_POST['searchword'];

$sql_res=mysql_query("select * from users where user_firstname like '%$q%' or user_lastname like '%$q%' order by user_id LIMIT 5");

while($row=mysql_fetch_array($sql_res))
{
$fname=$row['user_firstname'];
$lname=$row['user_lastname'];
$email=$row['user_email'];

$re_fname='<b>'.$q.'</b>';
$re_lname='<b>'.$q.'</b>';

$final_fname = str_ireplace($q, $re_fname, $fname);

$final_lname = str_ireplace($q, $re_lname, $lname);


?>

<div class="display_box" align="left">

<a href="http://www.google.com/">

<img src="user_img/y.jpg" style="width:25px; float:left; margin-right:6px" /><?php echo $final_fname; ?>&nbsp;<?php echo $final_lname; ?><br/>
<span style="font-size:9px; color:#999999"><?php echo $email; ?></span>

</a>

</div>

<?php }} else {} ?>

どんな助けにも感謝します!

4

2 に答える 2

0

新しい接続構成では、実際にデータベース接続を確立するのではなく、定数を定義するだけです。

データベース層を抽象化してコードを読みやすくし、エスケープなどを自動化するライブラリがたくさんあります。おそらく pdo http://php.net/manual/en/book.pdo.php

于 2013-04-23T23:25:52.350 に答える
0

config.php が変数を正しく参照できる限り (つまり、変数はそのファイル自体で宣言されているか、別の場所で宣言されて config.php ファイルに含まれています)、問題なく動作するはずです。

config.php:

<?
define("DB_HOST", "aha");
define("DB_NAME", "aha");
define("DB_USER", "aha");
define("DB_PASS", "aha");

$connect = mysql_connect(DB_HOST, DB_USER, DB_PASS);
mysql_select_db(DB_NAME, $connect);
?>
于 2013-04-23T23:36:57.663 に答える