我有这个代码:
$query = mysql_query("CALL dodaj_osobe ('$pesel','$imie','$nazwisko','$telefon','$adres','$nr_konta','$zarobek')");
print "DONE";
但它在查询不成功时也有效。
如何将其更改为“如果此查询成功完成则printf
此文本,否则printf
没有”?
我有这个代码:
$query = mysql_query("CALL dodaj_osobe ('$pesel','$imie','$nazwisko','$telefon','$adres','$nr_konta','$zarobek')");
print "DONE";
但它在查询不成功时也有效。
如何将其更改为“如果此查询成功完成则printf
此文本,否则printf
没有”?
$result = mysql_query('your SQL query');
if (!$result) {
print('error: ' . mysql_error()); // an error occured
}
else
{
print('Done');
}
尝试使用 mysqli,因为不推荐使用 mysql_query: mysqli 手册
一个简单的 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
}
?>
好吧,对于初学者来说,停止使用旧的 deprecated 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
}
将 all 替换PDO::PARAM_dataType
为命名占位符的 var 的任何数据类型。因此,例如,如果$pesel
是一个字符串,则替换$st->bindValue( 'pesel:' , $pesel , PDO::PARAM_dataType );
为$st->bindValue( 'pesel:' , $pesel , PDO::PARAM_STR );
. 注意 PARAM_STR?..
如果 OOP 方法让您感到困惑,请使用 MySQLi,因为它支持过程方法。
根据 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_*
自 PHP 5.5.0 起,函数已被弃用。查看更多详细信息:http: //php.net/manual/en/function.mysql-query.php