我需要在一个文件中运行三个php MySQL查询,但是一次运行两个,但不是三个都正常。我单独运行它们,它们起作用。我也使用了串联,但是仍然没有用。
我尝试通过使用逗号和来隐瞒。在等号之前还没有帮助
一次执行两个查询,但没有三个正在执行,我也使用逗号和点,但这也没有帮助。 我不知道这里的问题是为什么所有查询都不能在单个php文件中工作
<?php
include 'databaseconfig.php';
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$Emails = $_GET['email'];
$Cards = $_GET['card'];
$Table = $_GET['table'];
$Token_key=$_GET['Token_key'];
$Bet_amount=$_GET['Bet_amount'];
//1st query
$sql = "INSERT INTO Game_table (Email,Card_no,Table_no,Token_key,Bet_amount)
VALUES ('$Emails', '$Cards', '$Table', '$Token_key', '$Bet_amount')";
//2nd query
$sql .= " UPDATE LaborRegistered SET balance = balance - '$Bet_amount' WHERE Phone_no ='$Emails';";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
sleep(10);
include 'push_notification.php';
function send_notification ($tokens, $message)
{
$url = 'https://fcm.googleapis.com/fcm/send';
$fields = array(
'registration_ids' => $tokens,
'data' => $message
);
$headers = array(
'Authorization:key = AIzaSyDAep_Hxa8iY5FxvlDKF1e_9Ws9EUhFCEw ',
'Content-Type: application/json'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
$result = curl_exec($ch);
if ($result === FALSE) {
die('Curl failed: ' . curl_error($ch));
}
curl_close($ch);
return $result;
}
//3rd query
$sql .= " Select Token_key From Game_table";
//this is not working
$result = mysqli_query($conn,$sql);
$tokens = array();
if(mysqli_num_rows($result) > 0 ){
while ($row = mysqli_fetch_assoc($result)) {
$tokens[] = $row["Token_key"];
}
}
mysqli_close($conn);
//sending notification
$message = array("message" => " FCM PUSH NOTIFICATION TEST MESSAGE");
$message_status = send_notification($tokens, $message);
echo $message_status;
return 1;
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
return 0;
}
$conn->close();
?>
我的php文件应该执行所有查询
答案 0 :(得分:2)
select val from s where REGEXP_LIKE(val, '^([0-9.]*,)([0-9.]*,)([A-Z]+)');
一次只能执行一个查询。如果要执行许多查询,则必须使用multi_query()
。
请注意,您的查询必须用半列分隔。
例如
mysqli_query()
关于返回值,文档指出:
如果第一条语句失败,则返回 FALSE 。要从其他语句中检索后续错误,必须首先调用mysqli_next_result()。
请考虑将prepared statements与parameters结合使用,将用户的输入数据绑定到查询。他们实际上是SQL Injections的弱点。