2017-03-09 13 views
0

PHPを使用してテーブルの行を更新しようとしていますが、これは初めてではありませんが、更新機能は動作していません。PHPでMySQLテーブルを正しく更新する方法

これは、PHPのコードです:

<?php 
header("Access-Control-Allow-Origin: *"); 

$server = "localhost"; 
$username = "username"; 
$password = "dbpass"; 
$database = "dbname"; 

$con = mysql_connect($server, $username, $password) or die ("Could not connect: " . mysql_error()); 

mysql_select_db($database, $con); 

$q=mysqli_query("UPDATE `phonegap_login` SET `firstname` = 'Alhia' WHERE `reg_id` =50;"); 


if($q) 
{ 
echo "success"; 
} 
else 
{ 
echo "failed"; 
} 
?> 

そして、あなたがに挿入しようとした場合の方法によって、それは動作します:

$q=mysql_query("insert into `phonegap_login` (`reg_date`, `firstname`, `lastname`, `email`, `password`) values ('test', 'test', 'test', 'test', 'test')"); 

は、私はそれをどのように修正すればよいですか?インサートが動作していて、ローを更新していません。 テスト用にreg_id = 50の行を使用しています。

+3

あなたがmysqli_queryとするmysql_queryを混合しています。 mysqli_queryだけを使用してください。 mysql_queryは非推奨です –

+0

@MaartenvanMiddelaarありがとう!それは働いたので、私はあなたの答えをマークすることができます質問に答えることができます:D – Fala

+2

これは主観的なので、答えとして入れていない...しかし、私は代わりにPDOを使用することをお勧めします。 PDOオンラインの例は、典型的には、「ベストプラクティス」(例えば、名前付きパラメータなど)をよりよく従う。 http://stackoverflow.com/questions/18655706/pdo-with-insert-into-through-prepared-statements –

答えて

1

あなたはmysqli_queryとmysql_queryを混在させています。 mysqli_queryだけを使用してください。

$mysqli = new mysqli($server, $username, $password, $database); 

if ($mysqli->connect_errno) { 
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; 
} 

$q = $mysqli->query("UPDATE `phonegap_login` SET `firstname` = 'Alhia' WHERE `reg_id` =50;"); 

または、PDO ::するmysql_queryは

$con = mysqli_connect($server, $username, $password) or die ("Could not connect: " . mysqli_error()); 

mysqli_select_db($database, $con); 

$q=mysqli_query("UPDATE `phonegap_login` SET `firstname` = 'Alhia' WHERE `reg_id` =50;"); 

または、オブジェクト指向を推奨されていません

$connectionString = 'mysql:host=' . $server . ';dbname='.$database; 
try { 
    $db = new PDO($connectionString, $user, $pass); 
} catch (PDOException $e) { 
    echo "Failed to connect to Database: (" . $e->getCode() . ") " . $e->getMessage(); 
} 
$q = $db->query("UPDATE `phonegap_login` SET `firstname` = 'Alhia' WHERE `reg_id` =50;"); 
+1

mysql_queryとmysqli_queryの間で混乱を避けるためのヒントの1つは、常にオブジェクト指向のインターフェイスを使用することです。 '$ db-> query(...)'は、間違って 'i '文字。それはまた、それほど冗長ではなく、読みやすくなっています。 – tadman

+1

本当です。 OOPは道です。 –

関連する問題