0

私はこのコードを持っています:

$query = mysql_query("CALL dodaj_osobe ('$pesel','$imie','$nazwisko','$telefon','$adres','$nr_konta','$zarobek')"); 
print "DONE";

ただし、クエリが成功しなかった場合にも機能します。

これを「このクエリが正常に実行された場合、printfこのテキスト、他の方法ではprintf何も実行されない」に変更するにはどうすればよいですか?

4

3 に答える 3

2
$result = mysql_query('your SQL query');
if (!$result) {
    print('error: ' . mysql_error()); // an error occured
}
else
{
    print('Done');
}

mysql_queryは非推奨であるため、mysqliを使用してみてください: mysqli manual

簡単なmysqliの例:

<?php
// New Connection
$db = new mysqli('localhost','user','pass','database');
$result = $db->query("your SQL query");
if($result)
{
     // Cycle through results
    while ($row = $result->fetch_object())
    {
        $group_arr[] = $row;
    }
     // Free result set
     $result->close();
     $db->next_result();
}
else 
{
    echo($db->error); // an error occured, print the error
}
?> 
于 2013-01-07T15:56:23.620 に答える
1

さて、初心者のために、古い非推奨のを使用するのをやめてmysql_*ください。

やりたくないので、やりたいことをどうやってやるのかはお見せしmysql_*ません。PDOでは、次のようにします。

$db = new PDO( 'mysql:host=dbHost;dbName=yourDBName;' , 'user' , 'pass' );

try
{
   $st = $db->prepare("CALL dodaj_osobe (pesel:,imie:,nazwisko:,telefon:,adres:,nr_konta:,zarobek:)");
   $st->bindValue( 'pesel:' , $pesel , PDO::PARAM_dataType );
   $st->bindValue( 'imie:' , $imie , PDO::PARAM_dataType );
   $st->bindValue( 'nazwisko:' , $nazwisko , PDO::PARAM_dataType );
   $st->bindValue( 'telefon:' , $telefon , PDO::PARAM_dataType );
   $st->bindValue( 'adres:' , $adres , PDO::PARAM_dataType );
   $st->bindValue( 'nr_konta:' , $nr_konta , PDO::PARAM_dataType );
   $st->bindValue( 'zarobek:' , $zarobek , PDO::PARAM_dataType );
   $st->execute();
}
catch( PDOException $qEx )
{
   //the query wasn't successful..
   //deal with it
}

PDO::PARAM_dataType名前付きプレースホルダーの変数がどのデータ型であっても、すべてを置き換えます。したがって、たとえば、$peselが文字列の場合は、に置き換え$st->bindValue( 'pesel:' , $pesel , PDO::PARAM_dataType );ます$st->bindValue( 'pesel:' , $pesel , PDO::PARAM_STR );。PARAM_STR?..に注意してください。

OOPアプローチで混乱する場合は、手続き型アプローチをサポートしているMySQLiを使用してください。

于 2013-01-07T16:00:52.597 に答える
0

PHP maualによると:mysql_query() returns a resource on success、またはFALSEエラー時。

したがって、この関数の正確な結果が必要な場合は、次のように記述できます。

$result = mysql_query("SELECT * FROM table");
if (false !== $result) {
    // it's ok!
} else {
    // error!
}

さらに、mysql_*関数はPHP5.5.0で非推奨になりました。詳細を参照してください:http://php.net/manual/en/function.mysql-query.php

于 2013-01-07T16:16:06.063 に答える