更新: この質問には回答がありました。ユーザーが自分の mysql db を更新できる簡単なフォームがあります。私はmysql_
データベースへの接続に使用していましたが、pdomysql_
は減価償却されているため、これを行うためのより良い方法であることを知りました。
以下に、古い方法の完全な形式と新しい方法の完全な形式を示します。新しい方法ではエラーが発生します
古い方法:
<?php
$host = 'ip_address';
$user = 'user_name';
$password = 'password';
$link = mysql_connect($host, $user, $password);
$selected = mysql_select_db('db_name', $link);
if(!isset($_POST['text-input']))
?>
<form method="post">
%slice%
<input type="submit" value="Submit" />
</form>
%[if !edit]%
<?php
%[repeat items]%
$form_input%id=repeatIndex% = $_POST['element-%id=repeatIndex%'] ;
%[endrepeat]%
$query = 'INSERT INTO `table_name` (%[repeat items]%%[endif]%%html="Edit Me"%%[if !edit]%,%[endrepeat]%) VALUES (%[repeat items]%"' . $form_input%id=repeatIndex% . '",%[endrepeat]%);';
$query = preg_replace('/,\);/',');',$query);
$query = preg_replace('/,\) /',')',$query);
mysql_query($query);
?>
%[endif]%
新しい方法:
<?php
db = new PDO('mysql:host=ip_address;dbname=db_name;', 'user_name', 'password');
?>
<form method="post">
%slice%
<input type="submit" value="Submit" />
</form>
%[if !edit]%
<?php
%[repeat items]%
$form_input%id=repeatIndex% = $_POST['element-%id=repeatIndex%'] ;
%[endrepeat]%
$query = 'INSERT INTO `table_name` (%[repeat items]%%[endif]%%html="Edit Me"%%[if !edit]%,%[endrepeat]%) VALUES (%[repeat items]%"' . $form_input%id=repeatIndex% . '",%[endrepeat]%);';
$query = preg_replace('/,\);/',');',$query);
$query = preg_replace('/,\) /',')',$query);
mysql_query($query);
?>
%[endif]%
スローされるエラーは次のとおりです。
Warning: mysql_query() [function.mysql-query]: Access denied for user
'kuler'@'localhost' (using password: NO) in
/home/path_to/index.php on line 125
Warning: mysql_query() [function.mysql-query]: A link to the server could not be
established in /home/path_to/index.php on line 125
十分な情報を提供できたことを願っています。